博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
43: Construct Binary Tree from Preorder and Inorder Traversal
阅读量:5314 次
发布时间:2019-06-14

本文共 1503 字,大约阅读时间需要 5 分钟。

/************************************************************************/

            /*       43:  Construct Binary Tree from Preorder and Inorder Traversal                            */
            /************************************************************************/
            /*
             * Given preorder and inorder traversal of a tree, construct the binary tree.
             *
             * Note:
You may assume that duplicates do not exist in the tree.
             * */
            
            /*** 递归做法*********************/
            /*
             * 关键的地方在于:
             *
             * 在前序遍历的序列里,同时对左子树和右子树进行递归得到一个节点的左右节点
             * */

public TreeNode buildTreeByPre_In(int[] preorder, int[] inorder)            {                 return helper(0, 0, inorder.length - 1, preorder, inorder);            }                        private  TreeNode helper(int preStart, int inStart, int inEnd, int[] preorder, int[] inorder) {                if (preStart > preorder.length - 1 || inStart > inEnd) {                    return null;                }                TreeNode root = new TreeNode(preorder[preStart]);                int inIndex = 0; // Index of current root in inorder                for (int i = inStart; i <= inEnd; i++) {                    if (inorder[i] == root.val) {                        inIndex = i;                        break;                    }                }                root.left = helper(preStart + 1, inStart, inIndex - 1, preorder, inorder);                root.right = helper(preStart + inIndex - inStart + 1, inIndex + 1, inEnd, preorder, inorder);                return root;            }

 

 

转载于:https://www.cnblogs.com/theonemars/p/4254336.html

你可能感兴趣的文章
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
怎么在windows7系统我的电脑中添加快捷方式
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
原生JavaScript第六篇
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>