Given a binary tree, return the inorder traversal of its nodes' values.
For example: Given binary tree [1,null,2,3],
1 \ 2 / 3
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?
中序遍历,参照模板: JAVA 二叉树遍历。代码如下: /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode node = root; while (node != null || stack.size() > 0) { while (node != null) { stack.push(node); node = node.left; } if (stack.size() > 0) { node = stack.pop(); res.add(node.val); node = node.right; } } return res; } }