题目:迭代中序遍历
思路:
1. 递归 ==> 栈
2. 对于每个节点,向左遍历,所有节点入栈,直到叶子节点
/**
* 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) {
LinkedList<TreeNode> stack = new LinkedList<TreeNode> ();
List<Integer> list = new LinkedList<Integer> ();
if(root == null) return list;
getLeft(stack , root);
while(!stack.isEmpty()) {
TreeNode cur = stack.removeLast();
list.add(cur.val);
getLeft(stack ,cur.right);
}
return list;
}
void getLeft(LinkedList<TreeNode> stack , TreeNode root) {
while(root != null) {
stack.add(root);
root = root.left;
}
}
}