import java.util.ArrayList;
import java.util.List;
/* *
- @Created with IntelliJ IDEA.
- @Description: 二叉树中、后序遍历
- @Author:WangGuiyang
- @Date:2020/3/20 19:57
*/
/**
- public class TreeNode {
-
int val;
-
TreeNode left;
-
TreeNode right;
-
TreeNode(int x) { val = x; }
- }
*/
public class OrderTraversal {
/**
* 中序遍历
* @param root
* @return
*/
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
if (root == null) {
return null;
}
List<Integer> leftlist = inorderTraversal(root.left);
list.addAll(leftlist);
list.add(root.val);
List<Integer> rightlist = inorderTraversal(root.right);
list.addAll(rightlist);
return list;
}
/**
* 后序遍历
* @param root
* @return
*/
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> ret = new ArrayList<>();
if (root == null) {
return ret;
}
List<Integer> list1 = postorderTraversal(root.left);
ret.addAll(list1);
List<Integer> list2 = postorderTraversal(root.right);
ret.addAll(list2);
ret.add(root.val);
return ret;
}