给定一个二叉树,返回它的 前序 遍历。
示例:
输入: [1,null,2,3]
输出: [1,2,3]
来源:力扣(LeetCode)
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
if (root == null) {
// 空树应该要返回一个空的 List
return result;
}
// 访问根节点. 此处的访问操作就是把元素添加到 result 中.
result.add(root.val);
// 递归访问左子树
result.addAll(preorderTraversal(root.left));
// 递归访问右子树
result.addAll(preorderTraversal(root.right));
return result;
}
}
运行结果: