![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二叉树
虚心学习进步
主学C++、linux、网络编程
展开
-
剑指offer面试题36---二叉搜索树与双向链表
1.题目描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向 2.通过书上一个例子的图形象描述下: 3.代码实现 //一开始我想到的是:中序遍历然后把节点依次用左右指针连起来即可,没有象书中讲的那么麻烦的方法 ,不过书中的这种递// //归的方法还是值得练习的 /* struct TreeNode { in...原创 2018-08-24 14:34:28 · 131 阅读 · 0 评论 -
剑指offer34题--二叉树和为某一值的路径
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 需要注意,这道题的题意,路径必须是根节点到某叶子节点。根节点到中间节点,即使路径和满足也不行 此处做下标记,代码注释我已经写出如果要更完善点,应该加分支限定,此文代码需要更新 /* str...原创 2018-08-24 14:32:05 · 133 阅读 · 0 评论 -
剑指offer面试题33二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 设计思想: 序列的最后一个元素一定是整棵树的根节点,从序列开头找第一个大于根节点值的元素p->val,该元素后边直到末尾前一个元素的元素值应该都大于p->val(若p到末尾之间还有元素,才满足后序遍历的二叉搜索树),[p,末尾...原创 2018-08-24 14:32:11 · 147 阅读 · 0 评论 -
剑指offer面试题26树的子结构
1.题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 2.设计思想 第一步是在树A种查找与B根节点值一样的节点,这实际就是二叉树的遍历 bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { bool hasSubTree=false; ...原创 2018-08-24 18:12:07 · 173 阅读 · 0 评论 -
根据先序序列和中序,后序和中序序列创建二叉树
思考:如何才能确定一棵树? 结论: 通过中序遍历和先序遍历可以确定一个树 通过中序遍历和后续遍历可以确定一个树 通过先序遍历和后序遍历确定不了一个树。 算法实现: (一)先序和中序重建二叉树,按层次遍历输出 #include <iostream> #include <cstdio> #i...原创 2018-08-28 08:44:17 · 16972 阅读 · 1 评论