Binary Tree Postorder Traversal

來源:互聯網
上載者:User

標籤:

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 == 235                     stack.pop();36                     path.add(m.node.val);37                 }38             }39         }40         return path;41     }42 }

 

Binary Tree Postorder Traversal

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.