递归法
public class Leetcode_94 {
class TreeNode{
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val){
this.val = val;
}
public TreeNode(int val,TreeNode left,TreeNode right){
this.val = val;
this.left = left;
this.right = right;
}
}
List<Integer> list = new ArrayList<Integer>();
public List<Integer> inorderTraversal(TreeNode root){
if(root == null){
return Collections.emptyList();
}
inorderTraversal(root.left);
list.add(root.val);
inorderTraversal(root.right);
return list;
}
public List<Integer> preorderTraversal(TreeNode root){
if(root ==null){
return Collections.emptyList();
}
list.add(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
return list;
}
public List<Integer> postorderTraversal(TreeNode root) {
if(root ==null){
return Collections.emptyList();
}
postorderTraversal(root.left);
postorderTraversal(root.right);
list.add(root.val);
return list;
}
}