• 知识点:
    ---- 二叉树

  • (遍历顺序)

前序遍历:中—左----右

中序遍历:左—中----右

后序遍历:左—右----中

  • 题目:
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
  • 解法:
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:TreeNode* ReBuildTree(vector<int>& preorder, vector<int>& inorder,int preleft, int preright,int inleft,int inright){if(preleft>preright || inleft>inright){return NULL;}// 中间子点TreeNode* head_ = new TreeNode(preorder[preleft]);int i;for(int m = inleft; m <= inright; m++){if(inorder[m] == preorder[preleft]){i = m;break;}}int left_len = i - inleft;int right_len = inright - i;head_->left = ReBuildTree(preorder,inorder,preleft+1,preleft + left_len,inleft,i-1);head_->right = ReBuildTree(preorder,inorder,preleft+left_len+1,preleft+left_len+right_len+1,i+1,inright);return head_;}TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder) {//前序:中左右//中序:左中右    int count_ = preorder.size();//  使用递归的方式return ReBuildTree(preorder,inorder,0,count_-1,0,count_-1);}
};

运行结果:

LeetCode-----重建二叉树相关推荐

  1. 【LeetCode】剑指 Offer 07. 重建二叉树

    [LeetCode]剑指 Offer 07. 重建二叉树 文章目录 [LeetCode]剑指 Offer 07. 重建二叉树 package offer;import java.util.ArrayD ...

  2. 剑指Offer(四):重建二叉树

    说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...

  3. C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告

    剑指offer 重建二叉树 提交网址:  http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&t ...

  4. 剑指offer第7题 重建二叉树

    前言 该系列文章为本人刷leetcode的记录,主要旨在分享刷题的思路及算法解析(尽可能的一题多解),另方便自己日后查阅回顾.代码的实现语言是python和go. 想进大厂免不了刷题,一起加油吧,小伙 ...

  5. 手把手教你如何重建二叉树(超精彩配图)

    文章目录 一.二叉树的重建 (一)面试题07. 重建二叉树 (二)分析该题目 (三)java代码实现 (四)IDEA调试代码,详细查看构建的过程 (五)附Arrays.copyOfRange()的用法 ...

  6. 【算法专题】重建二叉树

    重建二叉树总结 概述 重建二叉树分为三种类型: (1)中序遍历+前序遍历/后序遍历 重建二叉树: (2)中序遍历+层序遍历 重建二叉树: (3)前序遍历+给定叶节点 重建二叉树. 下面分别给出这三类重 ...

  7. 剑指offer:面试题07. 重建二叉树

    题目: 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7 ...

  8. 【leetcode】二叉树与经典问题

    文章目录 笔记 leetcode [114. 二叉树展开为链表](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list ...

  9. 根据二叉树的前序遍历和中序遍历重建二叉树

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

  10. 剑指offer_第4题_重建二叉树

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

最新文章

  1. BIOS设置和CMOS设置的区别和联系
  2. 隐藏在mock之后的‘快感’
  3. mysql concat例子_MYSQL中CONCAT详解
  4. everything搭配什么软件_带你飞起来的好工具Everything,极速找到你所要的文件
  5. python论文题目_有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
  6. 操作系统课程设计----模拟文件管理系统(c语言)
  7. Kano模型思考:以QQ第一版为例,如何确定产品优先级
  8. PCI-E x1/x4/x8/x16四种插槽区别是什么?具体有什么作用?
  9. 架构思维成长系列教程(八)- 电商供应链系统架构设计
  10. 【架构思维】:设计服务降级的思路与方法
  11. 前端web开发学习路线图
  12. 日媒:争夺中国人才,跨国公司败北
  13. 电话激活Windows 中文操作系统步骤
  14. 权限系统的基本概念和架构
  15. ExecutorCompletionService
  16. 用户画像-User Profile
  17. do while和while的区别
  18. IRIS平台部署手册及基本操作
  19. NLP实战一 利用OpenAI Codex实现中文转python代码
  20. CAD 学习笔记 Mac

热门文章

  1. javaweb学习总结—jsp简单标签标签库开发
  2. intellij IDEA 关于src等某些文件夹不能右键新建class文件问题
  3. 验证登录信息是否合法
  4. Spring Resource和ResourceLoader源码解析
  5. Android优化系列之ListView优化老生常谈
  6. Hibernate入门级实例
  7. Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例
  8. 【原创】leetCodeOj --- Find Peak Element 解题报告
  9. unrecognized selector sent to instance问题的解决
  10. C/C++程序设计注意事项 (二)