zoukankan      html  css  js  c++  java
  • 144. Binary Tree Preorder Traversal

    class Solution {
        public List<Integer> preorderTraversal(TreeNode root) {
            Stack<TreeNode> stack=new Stack<TreeNode>();
            List<Integer> res=new ArrayList<Integer>();
            while(root!=null||!stack.isEmpty())
            {
                while(root!=null)
                {
                    res.add(root.val);
                    stack.push(root);
                    root=root.left;
                }
                root=stack.pop().right;
            }
            return res;
        }
    }
    
    class Solution {
        public List<Integer> preorderTraversal(TreeNode root) {
            List<Integer> res=new ArrayList<Integer>();
            TreeNode cur=root, pre=null;
            while(cur!=null)
            {
                if(cur.left==null)
                {
                    res.add(cur.val);
                    cur=cur.right;
                }
                else
                {
                    pre=cur.left;
                    while(pre.right!=null&&pre.right!=cur)
                        pre=pre.right;
                    if(pre.right==null)
                    {
                        res.add(cur.val);
                        pre.right=cur;
                        cur=cur.left;
                    }
                    else
                    {
                        pre.right=null;
                        cur=cur.right;
                    }
                }
            }
            return res;
        }
    }
    

      

  • 相关阅读:
    编译错误总结。
    9.7
    9.5
    9.6
    9.4
    9.3
    FutureTask取结果超时代码小测试
    java concurrent包常用类小结
    java Nio零散知识点整理
    java进阶教程unit_2java常用类(2)
  • 原文地址:https://www.cnblogs.com/asuran/p/7654352.html
Copyright © 2011-2022 走看看