二叉树的后序遍历

来源:互联网 发布:钢琴曲 知乎 编辑:程序博客网 时间:2024/06/01 14:18
public ArrayList<Integer> postorderTraversal(TreeNode root){        Stack <TreeNode> stack = new Stack<>();        ArrayList<Integer> result = new ArrayList<>();                if(root== null){            return result;        }        TreeNode prev = null;        TreeNode curr ;        stack.push(root);        while(!stack.empty()){            curr = stack.peek();            if(prev == null || prev.left == curr || prev.right == curr){                if(curr.left != null){                    stack.push(curr.left);                }else if(curr.right != null){                    stack.push(curr.right);                }            }else if(curr.left == prev){                if(curr.right != null){                    stack.push(curr.right);                }            }else{                result.add(curr.val);                stack.pop();                            }            prev = curr;        }        return result;    }}

原创粉丝点击