Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,3,2]
.
Note: Recursive solution is trivial, could you do it iteratively?
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
Have you met this question in a real interview?
Solution:
1 /** 2 * Definition for binary tree 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public List<Integer> inorderTraversal(TreeNode root) { 12 List<Integer> nodeList = new ArrayList<Integer>(); 13 inorderRecur(nodeList,root); 14 15 return nodeList; 16 17 } 18 19 public void inorderRecur(List<Integer> nodeList, TreeNode curNode){ 20 if (curNode==null) return; 21 22 inorderRecur(nodeList,curNode.left); 23 nodeList.add(curNode.val); 24 inorderRecur(nodeList,curNode.right); 25 26 return; 27 28 } 29 }