Given a binary tree, return the inorder traversal of its nodes' values.
Example:
Input: [1,null,2,3] 1 2 / 3 Output: [1,3,2]
Follow up: Recursive solution is trivial, could you do it iteratively?
分析:题目比较简单,要求对一个二叉树做中序遍历。emmm,很基础的DFS就可以了。代码如下:
1 class Solution { 2 public List<Integer> inorderTraversal(TreeNode root) { 3 List<Integer> list = new ArrayList<>(); 4 helper(list,root); 5 return list; 6 } 7 private void helper(List<Integer> list, TreeNode root) { 8 if ( root == null ) return; 9 helper(list,root.left); 10 list.add(root.val); 11 helper(list,root.right); 12 } 13 }
运行时间0ms,哇,第一个0ms成就达成!
关于二叉树的先序、中序、后序遍历,只要改一下第10行代码的位置就可以了。先序就放到最前面,中序就放到中间,后序就放到最后面。其他的也没啥要注意的了。