LeetCode-----重建二叉树
知识点:
---- 二叉树(遍历顺序)
前序遍历:中—左----右
中序遍历:左—中----右
后序遍历:左—右----中
- 题目:
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
- 解法:
/*** 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-----重建二叉树相关推荐
- 【LeetCode】剑指 Offer 07. 重建二叉树
[LeetCode]剑指 Offer 07. 重建二叉树 文章目录 [LeetCode]剑指 Offer 07. 重建二叉树 package offer;import java.util.ArrayD ...
- 剑指Offer(四):重建二叉树
说明: 1.本系列是根据<剑指Offer>这个系列做的一个小笔记. 2.直接动力是因为师兄师姐找工作很难,而且机械出生的我面试算法更难. 3.刚开始准备刷LeetCode.LintCode ...
- C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
剑指offer 重建二叉树 提交网址: http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&t ...
- 剑指offer第7题 重建二叉树
前言 该系列文章为本人刷leetcode的记录,主要旨在分享刷题的思路及算法解析(尽可能的一题多解),另方便自己日后查阅回顾.代码的实现语言是python和go. 想进大厂免不了刷题,一起加油吧,小伙 ...
- 手把手教你如何重建二叉树(超精彩配图)
文章目录 一.二叉树的重建 (一)面试题07. 重建二叉树 (二)分析该题目 (三)java代码实现 (四)IDEA调试代码,详细查看构建的过程 (五)附Arrays.copyOfRange()的用法 ...
- 【算法专题】重建二叉树
重建二叉树总结 概述 重建二叉树分为三种类型: (1)中序遍历+前序遍历/后序遍历 重建二叉树: (2)中序遍历+层序遍历 重建二叉树: (3)前序遍历+给定叶节点 重建二叉树. 下面分别给出这三类重 ...
- 剑指offer:面试题07. 重建二叉树
题目: 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字. 例如,给出 前序遍历 preorder = [3,9,20,15,7 ...
- 【leetcode】二叉树与经典问题
文章目录 笔记 leetcode [114. 二叉树展开为链表](https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list ...
- 根据二叉树的前序遍历和中序遍历重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
- 剑指offer_第4题_重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果 请重建出该二叉树 假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7, ...
最新文章
- BIOS设置和CMOS设置的区别和联系
- 隐藏在mock之后的‘快感’
- mysql concat例子_MYSQL中CONCAT详解
- everything搭配什么软件_带你飞起来的好工具Everything,极速找到你所要的文件
- python论文题目_有关利用python获取网页, 以及KDD近几年论文标题与摘要链接
- 操作系统课程设计----模拟文件管理系统(c语言)
- Kano模型思考:以QQ第一版为例,如何确定产品优先级
- PCI-E x1/x4/x8/x16四种插槽区别是什么?具体有什么作用?
- 架构思维成长系列教程(八)- 电商供应链系统架构设计
- 【架构思维】:设计服务降级的思路与方法
- 前端web开发学习路线图
- 日媒:争夺中国人才,跨国公司败北
- 电话激活Windows 中文操作系统步骤
- 权限系统的基本概念和架构
- ExecutorCompletionService
- 用户画像-User Profile
- do while和while的区别
- IRIS平台部署手册及基本操作
- NLP实战一 利用OpenAI Codex实现中文转python代码
- CAD 学习笔记 Mac
热门文章
- javaweb学习总结—jsp简单标签标签库开发
- intellij IDEA 关于src等某些文件夹不能右键新建class文件问题
- 验证登录信息是否合法
- Spring Resource和ResourceLoader源码解析
- Android优化系列之ListView优化老生常谈
- Hibernate入门级实例
- Java基础知识强化之网络编程笔记04:UDP之发送端的数据来自于键盘录入案例
- 【原创】leetCodeOj --- Find Peak Element 解题报告
- unrecognized selector sent to instance问题的解决
- C/C++程序设计注意事项 (二)