二叉树的前序遍历
给定一个二叉树,返回它的前序遍历
示例:
思路
前序遍历1.先访问根节点,把元素加入到List中;
2.递归遍历左子树,把左子树的遍历结果加入到List中;
3.递归遍历右子树,把右子树的遍历结果加入到List中。
4.返回
代码
/**
* 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> res=new ArrayList<>();
if(root==null){
return res;
}
//先访问根节点
res.add(root.val);
//访问左子树,把左子树的结果全部加入到res中
res.addAll(preorderTraversal(root.left));
//访问右子树,把右子树的结果全部加入的res中
res.addAll(preorderTraversal(root.right));
return res;
}
}
注意:
addAll方法用于将指定 collection 中的所有元素添加到列表。