二叉树的前序遍历、中序遍历、后序遍历
给定一个二叉树,返回它的前序遍历、中序遍历、后序遍历。
例子
例子1:
输入: [1,null,2,3]
1
\
2
/
3
前序:[1,2,3]
中序:[1,3,2]
后序:[3,2,1]
代码
//前序遍历
List<Integer> l = new LinkedList<>();
public List<Integer> preorderTraversal(TreeNode root) {
if(root == null){
return l;
}
l.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return l;
}
//中序遍历
List<Integer> l = new ArrayList<>();
public List<Integer> inorderTraversal(TreeNode root) {
if(root == null){
return l;
}
inorderTraversal(root.left);
l.add(root.val);
inorderTraversal(root.right);
return l;
}
//后序遍历
List <Integer>l = new LinkedList<>();
public List<Integer> postorderTraversal(TreeNode root) {
if(root == null){
return l;
}
postorderTraversal(root.left);
postorderTraversal(root.right);
l.add(root.val);
return l;
}
思路
注意事项
首先要有递归边界,确定递归边界返回的值。
其次就是跟正常的遍历一样,最后返回链表。