题目大意:返回二叉树的先序遍历list。中序见94,后序见145。
法一:普通递归遍历,只是这里多了一个list数组,所以分成了两个函数。代码如下(耗时1ms):
1 public List<Integer> preorderTraversal(TreeNode root) { 2 List<Integer> list = new ArrayList<Integer>(); 3 list = dfs(root, list); 4 return list; 5 } 6 public static List<Integer> dfs(TreeNode root, List<Integer> list) { 7 if(root == null) { 8 return list; 9 } 10 else { 11 list.add(root.val); 12 list = dfs(root.left, list); 13 list = dfs(root.right, list); 14 return list; 15 } 16 }