首页 > 代码库 > [LeetCode] Binary Tree Postorder Traversal
[LeetCode] Binary Tree Postorder Traversal
public class Solution { public List<Integer> postorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<Integer>(); Stack<TreeNode> nodeStack = new Stack<TreeNode>(); TreeNode nowNode = root; boolean popNode = false; if (root == null) return result; while(!(nowNode == root && popNode)) { if ( !popNode && nowNode != null) { nodeStack.push(nowNode); nowNode = nowNode.left; } else if ( nowNode == null || (popNode && nowNode != nodeStack.peek().right)) { //left done if (nodeStack.peek().right == null) { nowNode = nodeStack.pop(); result.add(nowNode.val); popNode = true; } else { nowNode = nodeStack.peek().right; popNode = false; } } else if (popNode && (nowNode == nodeStack.peek().right)) { //right done nowNode = nodeStack.pop(); result.add(nowNode.val); popNode = true; } } return result; }}
[LeetCode] Binary Tree Postorder Traversal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。