Leetcode_#94_二叉樹的中序遍歷

原題:#94_二叉樹的中序遍歷

  1. 首先使用一個指針走到最左端,遍歷過程中把節點依次入棧
  2. 走到空時,彈出棧頂節點並訪問
  3. 而後使用步驟(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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章