二叉树的中序遍历
题目
给你二叉树的根节点root,返回改二叉树的后序遍历序列。
思路:递归
后序:左右根 路径收集
- 对左子树进行前序遍历(递归调用)
- 访问根节点
- 对右子树进行前序遍历(递归调用)
代码
public List<Integer> inorderTraversal(TreeNode root) {//中序遍历:左->根->右
List<Integer> res = new ArrayList<Integer>();
if(root == null) return res;
//左
List<Integer> l_list = new ArrayList<Integer>();
l_list = inorderTraversal(root.left);
if(l_list != null) res.addAll(l_list);
//根
res.add(root.val);
//右
List<Integer> r_list = new ArrayList<Integer>();
r_list = inorderTraversal(root.right);
if(r_list != null) res.addAll(r_list);
return res;
}//inorderTraversal