剑指offer4-重建二叉树

重建二叉树

https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

解题思路:其实这个题目不难,但是没有想到呀,居然败在了一个Arrays.binarySearch的使用上面,Arrays.binarySearch能够用于排序之后的数据的查找,无序的数组查找元素根本就不能使用呀,天了噜。
主要是了结前序遍历和中序遍历的特性即可。要理解树的局部重复的特性,对于左右子树的重建可以利用递归的算法进行完成。

import java.util.Arrays;
/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public TreeNode help(int [] pre,int preS, int preE, int [] in, int inS

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

小白刷剑指offer 文章被收录于专栏

跟着小白一起刷剑指offer,通过讨论加深印象吧~ 没有人不学习就能够掌握知识,知识就是需要学习的~

全部评论

相关推荐

4 收藏 评论
分享
牛客网
牛客企业服务