OJ日常 | 树——重建二叉树
2018-03-23 23:38
134 查看
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。一个答案
对树,会说不会写。眼高手低copy别人的,无敌养眼的代码。
Arrays.copyOfRange( )这个函数可以说是非常巧妙了。
通过pre[0]==in[i]pre[0]==in[i]判断出左子树的个数,前序和中序自然就划分开来了。
因为其中用到了Arrays,所以记得import。
//链接:https://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6 //来源:牛客网 import java.util.*; /** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public TreeNode reConstructBinaryTree(int [] pre,int [] in) { if(pre.length == 0||in.length == 0){ return null; } TreeNode node = new TreeNode(pre[0]); for(int i = 0; i < in.length; i++){ if(pre[0] == in[i]){ node.left = reConstructBinaryTree(Arrays.copyOfRange(pre, 1, i+1), Arrays.copyOfRange(in, 0, i)); node.right = reConstructBinaryTree(Arrays.copyOfRange(pre, i+1, pre.length), Arrays.copyOfRange(in, i+1,in.length)); } } return node; } }
相关文章推荐
- 【剑指Offer面试题】 九度OJ1385:重建二叉树
- 【九度OJ1385】|【剑指offer6】重建二叉树
- 【九度oj】1385 重建二叉树
- 华为OJ 重建二叉树
- 九度OJ-题目1385:重建二叉树
- [九度OJ]1078.二叉树的遍历(重建)
- 九度OJ_1385:重建二叉树
- 【剑指Offer面试题】 九度OJ1385:重建二叉树
- (数据结构)oj重建二叉树(用权值作为新二叉树的下标)
- 南阳 oj 重建二叉树 题目756
- 重建二叉树
- 重建二叉树(根据前序中序遍历构建二叉树)
- 重建二叉树
- 重建二叉树(面试题6)
- 2016/11/10 1001. 二叉树重建
- 剑指offer 重建二叉树
- 二叉树(14)----由前序遍历和中序遍历重建二叉树,递归方式
- 重建二叉树
- 重建二叉树
- 算法练习四:重建二叉树