Leetcode-144-Binary-Tree-Preorder

相似题目

144 (preorder)、94 (inorder)、145 (postorder)

🧠 思路总结

  • 前序preorder遍历的固定顺序是 根 → 左 → 右。
    inorder: 左 → 根 → 右
    postorder: 左 → 右 → 根
  • preorder顺序图
  • 三个order使用list

❗ 易错点 / 小坑

  • 在递归函数内部 每次 new 一个 List,会导致之前的遍历结果被丢失
  • TreeNode 不是“树”,而是“节点”。树 = 一堆 TreeNode 连起来
  • Base case: root == null
  • 为什么要判断root == null?
    1. 叶子节点的 left / right 本来就是 null
    2. null 表示:这条路走到头了
    3. 这是递归的 终止条件

✅ 代码(Java)

1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
List<Integer> res = new ArrayList<>();

public List<Integer> preorderTraversal(TreeNode root) {
if (root == null) {
return res;
}
res.add(root.val); // 根
preorderTraversal(root.left); // 左
preorderTraversal(root.right); // 右
return res;
}
}

Leetcode-144-Binary-Tree-Preorder
https://powersixxx.github.io/leetcode-blog/2025/12/29/Leetcode-144-Binary-Tree-Preorder/
作者
Baowen Liu
发布于
2025年12月29日
许可协议