0
点赞
收藏
分享

微信扫一扫

剑指 Offer:07

村里搬砖的月野兔 2022-05-04 阅读 35

[](()3. 实现方法


[](()3.1 方法 1

[](()3.1.1 思路

  1. 利用指针

  2. 前序遍历的第一个元素肯定是二叉树的根节点,我么可以查找该节点在中序遍历中的位置,然后拆分出左右子树;

  3. 其中用一个指针用于指向根节点所在索引位置,然后根据该指针位置来拆分左右子树;

  4. 最后递归求出左右子树即可;

[](()3.1.2 实现

public TreeNode buildTree(int[] preorder, int[] inorder) {

return recursive(0, 0, inorder.length - 1, preorder, inorder);

}

public TreeNode recursive(int preStart, int inStart, int inEnd, int[] preOrder, 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 int[] inOrder){

//

if(inStart > inEnd || preStart > preOrder.length - 1){

return null;

}

// 创建根节点,根节点即为先序遍历中的第一个元素

举报

相关推荐

剑指offer

剑指Offer

剑指 offer

剑指offer、leetcode

【 剑指 offer 01】

剑指Offer(二)

0 条评论