zoukankan      html  css  js  c++  java
  • 41: Binary Tree Inorder Traversal

     /************************************************************************/
                /*       41:  Binary Tree Inorder Traversal                               */
                /************************************************************************/
                /*
                 *  /*
                 * 应用1:
                 * 当二叉树已经是一棵 二查搜索树时,中序遍历后的结果就是升序排列的
                 * */
                 
                /****中序遍历 InOrder tree******************************************/

       public List<Integer> inorderTraversal(TreeNode root)
                {
                    List<Integer> source=new ArrayList<Integer>();
                    inorderTree(root,source);
                    return source;
                }
                
                private void inorderTree(TreeNode node,List<Integer> nodes)
                {
                        if(node==null)
                        {
                            return;
                        }
                        //System.out.println("pre root-->"+node.val);
                        inorderTree(node.left,nodes);
                        System.out.println("-->"+node.val);
                        nodes.add(node.val);
                        inorderTree(node.right,nodes);
                        
                }
                
                /****中序遍历 InOrder tree Time: O(n), Space: O(n)栈迭代方法实现的**********/
                public List<Integer> inorderTraversal2(TreeNode root)
                {
                    List<Integer> results=new ArrayList<Integer>();
                    Stack<TreeNode> stack=new Stack<TreeNode>();
                    TreeNode node=null;
                    node=root;
                    while(node!=null||!stack.isEmpty())
                    {
                        if(node!=null)
                        {
                            stack.push(node);
                            node=node.left;
                        }
                        else
                        {
                            node= stack.pop();
                            if(node!=null)
                            {
                                results.add(node.val);
                                //System.out.println("-->"+node.val);
                            }
                            node=node.right;
                        }
                    }
                    return results;
                    
                }

  • 相关阅读:
    学习进度条
    学术诚信与职业道德
    czxt
    操作系统
    04 17评论博客
    0414 结对 2.0 33 34
    0408 汉堡包
    (补)结对心得
    构建之法4读后感
    复利计算4.0
  • 原文地址:https://www.cnblogs.com/theonemars/p/4254329.html
Copyright © 2011-2022 走看看