Binary Tree Postorder Traversal

来源:互联网 发布:织梦源码安装方法 编辑:程序博客网 时间:2024/05/19 17:57
/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<Integer> postorderTraversal(TreeNode root) {        //按照pre和in那样做        List<Integer> answer = new LinkedList<Integer>();        Stack<TreeNode> store = new Stack<TreeNode>();//用来存放根节点和右结点        Stack<String> rootorright = new Stack<String>();        //rootorright和store同步,记录下每次存入stack的是right还是root        while(root != null)//Line 15: error: ';' expected While(root != null) while要小写        {            if(root.left != null)//若左右均存在结点,先将根结点存入stack,将右结点存入stack,优先走左路            {                store.push(root);                rootorright.push("root");                if(root.right != null)                 {                    store.push(root.right);                    rootorright.push("right");                }                root = root.left;            }            else if(root.right != null)//若不存在左结点而存在右结点,将根节点存入stack,走右路            {                store.push(root);                rootorright.push("root");                root = root.right;            }            else //若左右结点均不存在,将这个结点存入答案并让它变成null(防止对下一个循环的干扰),然后分两种情况                 //如果这个结点本身是左结点,那下一个根结点就要选与之对应的右结点                 //如果这个结点本身是右结点,那下一个根结点就要选与之对应的根结点            {                answer.add(root.val);                root = null;                //if (!store.isEmpty()) root = store.pop();                //else break;                //上面这个写法错误,不能起到删除原root的效果                if(!store.isEmpty())                 {                    root = store.pop();                    if(rootorright.pop() == "root" )                    //当是stack里pop出root的时候,就将其左右结点均变成null,因为左右都已考察过了(因为根是最低优先级(后序是左右根))                    {                        root.left = null;                        root.right = null;                    }                }            }        }        return answer;    }}

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃药伤胃了胃疼怎么办 宝宝吃药伤胃了怎么办 胃胀胃痛怎么办快速解决方法 半夜2点3点胃疼怎么办 晚上吃多了胃疼怎么办 骨折打石膏后痒怎么办 脚脖子崴了肿了怎么办 喝酒喝的吐血了怎么办 感冒后咳嗽有痰怎么办 嗓子里老是有痰怎么办 物业把水停了怎么办 机洗衬衫缩水了怎么办 羊绒大衣洗缩水了怎么办 棉质衣服缩水了怎么办 衣服洗了变小了怎么办 毛衣洗后缩水了怎么办 鼻子又大又塌怎么办 苹果6被停用了怎么办 苹果6s手机停用怎么办 苹果4手机已停用怎么办 苹果手机5停用了怎么办 老公被骗300多万怎么办 苹果手机被抹除怎么办 钓鱼邮件点开了怎么办 幼犬吃多了拉稀怎么办 幼犬半夜醒了叫怎么办 相爱相杀的感情怎么办 冬天玩电脑手冷怎么办 被陌生人骗了钱怎么办 被网上骗了钱怎么办 20岁欠了10万怎么办 我赌博欠了10万怎么办 孩子见到生人不爱说话怎么办 18岁了个子矮小怎么办 1岁宝宝个子矮70怎么办 喋血街头2进监狱怎么办 360云盘收费了怎么办 头脑不清醒晕沉怎么办 一岁宝宝还不会走路怎么办 2岁宝宝受凉呕吐怎么办 3岁宝宝受凉呕吐怎么办