public List postorderTraversal(TreeNode root) {List r = new ArrayList(); TreeNode p = new TreeNode(0);//Dummy TreeNode c = root; Stack st = new Stack(); while(c!= null || !st.isEmpty()) { if(c != null) { st.push(c); if(c.right != null) { st.push(c.right); } c = c.left; } else { c = st.pop(); boolean isLeafOrChildrenDone = (c.right == null && c.left == null) || (p == c.right || p == c.left); p = c; if(isLeafOrChildrenDone) { r.add(c.val); c = null; } } }return r; }
[leetcode] Binary Tree Postorder Traversal
最新推荐文章于 2024-06-07 08:25:31 发布