zoukankan      html  css  js  c++  java
  • Binary Tree Postorder Traversal

    Postorder: first, visit left child, then, parent, last, is to visit right child.

    The postorder traversal result of above tree is {4,6,5,2,3,1}.

    Key different here is that we print right child before we print parent node. Therefore, we need a mark for parent node. Only when its left child and right child are both printed, it can be printed out.

     1 /**
     2  * Definition for a binary tree node.
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 
    11 class MarkTreeNode {
    12     TreeNode node;
    13     int mark;
    14     MarkTreeNode(TreeNode n, int x) { node = n; mark = x; }
    15 } 
    16 
    17 public class Solution {
    18     public List<Integer> postorderTraversal(TreeNode root) {
    19         List<Integer> path = new ArrayList<Integer>();
    20         Deque<MarkTreeNode> stack = new ArrayDeque<MarkTreeNode>();
    21         TreeNode p = root;
    22         MarkTreeNode m = null;
    23         while (p != null || !stack.isEmpty()) {
    24             while (p != null) {
    25                 m = new MarkTreeNode(p, 1);
    26                 stack.push(m);
    27                 p = p.left;
    28             }
    29             if (!stack.isEmpty()) {
    30                 m = stack.peek();
    31                 if (m.mark == 1) {
    32                     p = m.node.right;
    33                     m.mark = 2;
    34                 } else { // m.mark == 2
    35                     stack.pop();
    36                     path.add(m.node.val);
    37                 }
    38             }
    39         }
    40         return path;
    41     }
    42 }
  • 相关阅读:
    Problem C: 爬楼梯
    Problem E: 倒水(Water)
    Problem H: tmk买礼物
    HDU 1078 FatMouse and Cheese
    POJ 3186 Treats for the Cows
    POJ 1661 Help Jimmy
    POJ 1458 Common Subsequence
    2018-软工机试-D-定西
    2018-软工机试-F-庙会
    2018-软工机试-C-和你在一起
  • 原文地址:https://www.cnblogs.com/ireneyanglan/p/4850619.html
Copyright © 2011-2022 走看看