二叉树的前中后序遍历 前序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public static List<Integer> preorderTraversal(TreeNode root) { List<Integer> ans=new ArrayList() ; if(root!=null){ ans.add(root.val); if(root.left!=null){ ans.addAll(preorderTraversal(root.left)); } if(root.right!=null){ ans.addAll(preorderTraversal(root.right)); } } return ans; } 中序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public static List<Integer> inorderTraversal(TreeNode root) { List<Integer> ans=new ArrayList() ; if(root!=null){ if(root.left!=null){ ans.addAll(inorderTraversal(root.left)); } ans.add(root.val); if(root.right!=null){ ans.addAll(inorderTraversal(root.right)); } } return ans; } 后序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public List<Integer> postorderTraversal(TreeNode root) { List<Integer> ans=new ArrayList() ; if(root!=null){ if(root.left!=null){ ans.addAll(postorderTraversal(root.left)); } if(root.right!=null){ ans.addAll(postorderTraversal(root.right)); } ans.add(root.val); } return ans; }