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

  • 相关阅读:
    docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群
    docker-jenkins SSH Publishers时踩的坑
    docker-compose 修改zabbix images 添加微信报警插件 时间同步 中文乱码 添加grafana美化zabbix
    docker-compose 快速部署持续集成测试环境 Gitlab+Harbor+Jenkins pipeline 实现 tag run docker Images
    WEB程序开发基础·JSP的基本语法
    FIFO 与O_NOBLOCK
    投影
    信号量、互斥锁和条件变量的区别
    python装饰器
    python 生成器
  • 原文地址:https://www.cnblogs.com/theonemars/p/4254329.html
Copyright © 2020-2023  润新知