[leetcode] Binary Tree Inorder Traversal

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行代码的位置就可以了。先序就放到最前面,中序就放到中间,后序就放到最后面。其他的也没啥要注意的了。

猜你喜欢

转载自www.cnblogs.com/boris1221/p/9295885.html