Given a binary tree, return the postorder traversal of its nodes ' values.
For example:
Given binary Tree {1,#,2,3} ,
1 2 / 3
Return [3,2,1] .
Note:recursive solution is trivial, could do it iteratively?
Ask for a post-order traversal, requiring no recursion.
Use the stack, which is added from the back forward.
/*** Definition for a binary tree node. * public class TreeNode {* int val; * TreeNode left; * TreeNode rig Ht * TreeNode (int x) {val = x;} }*/ Public classSolution { PublicList<integer>postordertraversal (TreeNode root) {List List=NewArraylist<integer>(); if(Root = =NULL ) returnlist; Stack<TreeNode> stack =NewStack<treenode>(); Stack.push (root); while( !Stack.isempty ()) {TreeNode node=Stack.pop (); List.add (0, Node.val); if(Node.left! =NULL) Stack.push (node.left); if(Node.right! =NULL) Stack.push (node.right); } returnlist; }}
Leetcode 1145. Binary Tree postorder Traversal-----java