原題:#94_二叉樹的中序遍歷
- 首先使用一個指針走到最左端,遍歷過程中把節點依次入棧
- 走到空時,彈出棧頂節點並訪問
- 而後使用步驟(1)的方法後遍歷該節點的右孩子節點樹
public List<Integer> f (TreeNode root) {
List<Integer> ret = new ArrayList<>();
if (root == null) return ret;
Stack<TreeNode> stack = new Stack<>();
TreeNode p = root;
while (p != null || !stack.isEmpty()) {
while (p != null) {
stack.push(p);
p = p.left;
}
TreeNode node = stack.pop();
ret.add(node.val);
p = node.right;
}
return ret;
}