Construct Binary Tree from Preorder and Inorder Traversal
来源:互联网 发布:178数据库7.0 编辑:程序博客网 时间:2024/06/06 10:54
Given preorder and inorder traversal of a tree, construct the binary tree.
Note:
You may assume that duplicates do not exist in the tree.
思路:
preorder: current, left, right;
inorder: left, current, right;
由preorder来确定current,然后搜索inorder,找到current,左边的即为left,右边的即为right,然后计算两个left,right 区间,然后recursion;
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { if(preorder == null || inorder == null || preorder.length != inorder.length) return null; return build(preorder, 0, preorder.length-1, inorder, 0, inorder.length-1); } public TreeNode build(int[] preorder, int pstart, int pend, int[] inorder, int istart, int iend){ if(pstart>pend || istart>iend){ return null; } TreeNode node = new TreeNode(preorder[pstart]); int index = 0; for(int i=istart; i<=iend; i++){ if(inorder[i] == preorder[pstart]){ index = i; break; } } node.left = build(preorder, pstart+1, pstart+index-istart, inorder, istart, index-1); node.right = build(preorder, pstart+index-istart+1, pend, inorder, index+1, iend); return node; } }
0 0
- *(leetcode) Construct Binary Tree from Preorder and Inorder Traversal (tree)
- LeetCode[Tree]: Construct Binary Tree from Preorder and Inorder Traversal
- [leetcode][tree] Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal & Construct Binary Tree from Inorder and P
- LeetCode: Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal
- [Leetcode] Construct Binary Tree from Preorder and Inorder Traversal
- Leetcode: Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode] Construct Binary Tree from Preorder and Inorder Traversal
- LeetCode Construct Binary Tree from Preorder and Inorder Traversal
- leetcode 109: Construct Binary Tree from Preorder and Inorder Traversal
- 【leetcode】Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- [LeetCode]Construct Binary Tree from Preorder and Inorder Traversal
- Construct Binary Tree from Preorder and Inorder Traversal
- dispatch、onIntercept、onTouch三者对MotionEvent的分发、拦截机制分析
- jquery UI dialoag 窗口 建表 提交 (学习记录)
- 编译原理学习笔记06——(连连看—准备一下很多课件都演示的公式E → E+T | T )——2014_1_22
- db2导入导出表命令
- centos6 上用nginx 和 uwsgi 搭建 python web运行环境
- Construct Binary Tree from Preorder and Inorder Traversal
- Mysql date转string
- 黑马程序员_Java集合概述
- Hadoop管理员的十个最佳实践
- Android属性之build.prop生成过程分析
- 网站域名解析及ICP备案(新版)
- 历届博客之星获奖博客分享
- Windbg+Vmware/VirutalBox内核调试加速工具VirtualKD
- silverlight项目出现object reference not set to an instance of an object的解决办法