二叉树
文章平均质量分 53
谢蟹蟹猴啊
这个作者很懒,什么都没留下…
展开
-
面试可能会问到: 二叉树递归~~~理解递归的本质!!
思路:这道题是很经典的递归题,返回二叉树的镜像:既然是递归,我们就要明确递归的意义:假设我们对:TreeNode* mirrorTree(TreeNode* root) 这个函数做递归,什么意思!重复调用,那这个函数是什么功能 :这个函数实现了对输入root作为根节点的二叉树进行镜像翻转!然后看返回,返回当前根节点!!好,我们递归首先对根节点记录左右节点,然后翻转,然后左右节点进去之后继续调用,以左节点为根节点反转,以右节点为根节点反转注意到 return nullptr是针对最后一层的,而ret原创 2021-07-30 11:11:06 · 76 阅读 · 0 评论 -
剑指Offer26:树的子结构-----树查找要想到递归~
/** * 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: bool isSubStructure(TreeNode* .原创 2021-07-30 10:45:54 · 33 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
class Solution {private: unordered_map<int, int> index;public: TreeNode* myBuildTree(const vector<int>& preorder, const vector<int>& inorder, int preorder_left, int preorder_right, int inorder_left, int inorder_right) {原创 2021-07-28 14:37:54 · 33 阅读 · 0 评论 -
二叉树中的第二小节点~~记录父节点
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.原创 2021-07-27 09:16:03 · 110 阅读 · 0 评论 -
二、关于二叉树搜索树的总结(持续更新~~5.25)
二、关于二叉树搜索树的总结前言: 之前发表的博客:关于二叉树遍历问题的一些总结,观看量还是比较大的,证明大家这类问题能够引起大家的共鸣。 这篇文章在上篇文章的基础上进一步总结介绍二叉搜索树(Binary Search Tree,后文简写 BST)的一些问题。 首先,BST 的特性大家应该都很熟悉了: 1. 对于 BST 的每一个节点node,左子树节点的值都比node的值要小,右子树节点的值都比node的值大。 2. 对于 BST 的每一个节点node,它的左侧子树和右侧子树都是原创 2021-05-25 11:41:01 · 160 阅读 · 0 评论 -
Leetcode652:寻找重复的子树~(对三种遍历的思考)
思路: 还是一样,拿到题目我们要思考一个二叉树节点需要做什么,到底用什么遍历顺序就清楚了。有时候我们可能搞不清楚bfs和二叉树三种遍历的区别,其实bfs就是二叉树的三种遍历方式方式类似,只是有时候bfs的树不是简单二叉树,而是变化的多叉树嘛。但是在纯二叉树的问题中,我们就考虑三种遍历方式。在本题既然是相同的结构,注意到不是相同的数值还是啥的,而是相同的子树~~既然是子树,我首先想到的是从下到上用后序遍历,注意到! 无论是前序、中序还是后序遍历,他们都是递归道最小结构然后回溯,只是顺序不同,到每个.原创 2021-05-24 14:24:52 · 125 阅读 · 0 评论 -
Leetcode993:二叉树的堂兄弟节点
Leetcode993:二叉树的堂兄弟节点题目描述: 1.二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。 2.如果二叉树的两个节点深度相同,但 父节点不同 ,则它们是一对堂兄弟节点。 3.我们给出了具有唯一值的二叉树的根节点 root ,以及树中两个不同节点的值 x 和 y 。只有与值 x 和 y 对应的节点是堂兄弟节点时,才返回 true 。否则,返回 false。 思路: 昨天夜里12点还没睡,就打开Leetcode瞄了一眼今天的题目,乍一原创 2021-05-17 10:12:21 · 203 阅读 · 0 评论 -
关于二叉树遍历问题的一些总结(持续更新~~~~2021.5.19)
很多经典算法如 回溯、广度优先遍历、分治、动态规划等通常需要转化为树的问题,而树的题目难免涉及到递归的问题,因此掌握树的三种遍历框架是必须的。 先序遍历:根,左,右 中序遍历:左,根,右 后序遍历:左,右,根 可以看到三种遍历的命名主要看根遍历的顺序,左右的先后位置不变。 下面直接贴上遍历的框架代码:/* 二叉树遍历框架 */void traverse(TreeNode root) { // 前序遍历 traverse(root.left) // 中序遍历原创 2021-05-17 09:51:37 · 1236 阅读 · 0 评论