1. 程式人生 > >[leetcode] Binary Tree Inorder Traversal

[leetcode] Binary Tree Inorder Traversal

root script inorder iter des put rec pan left

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行代碼的位置就可以了。先序就放到最前面,中序就放到中間,後序就放到最後面。其他的也沒啥要註意的了。

[leetcode] Binary Tree Inorder Traversal