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;
                    
                }

  • 相关阅读:
    Oracle数据库的经典问题 snapshot too old是什么原因引起的
    在服务器上排除问题的头五分钟
    MySQL的redo log结构和SQL Server的log结构对比
    MySQL优化---DBA对MySQL优化的一些总结
    事务分类
    扩展HT for Web之HTML5表格组件的Renderer和Editor
    iOS平台快速发布HT for Web拓扑图应用
    HT for Web的HTML5树组件延迟加载技术实现
    Zip 压缩、解压技术在 HTML5 浏览器中的应用
    百度地图、ECharts整合HT for Web网络拓扑图应用
  • 原文地址:https://www.cnblogs.com/theonemars/p/4254329.html
Copyright © 2011-2022 走看看