草庐IT

二叉树

全部标签

LeetCode上10道关于二叉树层序遍历的题目 -- 熟练二叉树层序遍历

参考文章LeetCode102二叉树的层序遍历二叉树层序遍历的模板,使用队列来完成。由于需要将每一层的节点放在一起,所以我们每次遍历新的一层的时候,记录下当前队列的大小,因为当前队列的大小就代表当前层的节点数!要用一个变量来记录当前队列大小,而不能直接使用deque.size(),因为deque.size()是变化的!随着你在遍历这一层并不断将它们的左右儿子推入队列中,deque.size()是一直在变大的,并不能代表当前正在遍历的层的节点个数!classSolution{ publicListListInteger>>levelOrder(TreeNoderoot){ DequeTreeN

【数据结构】---详解二叉树--- ⌈知识点总结⌋ 和 ⌈常见力扣题目⌋ 确定不来看吗?

前言❤️铁汁们大家好,欢迎大家来到出小月的博客里,🤗🤗🤗之前呢,我分享了数据结构的栈和队列。。。。今天呢,给大家分享关于树的内容包括了树的结构、遍历和一些题目,希望大家看完我这篇文章都能够“涨芝士”,感觉小月写的还不错的话,记得👍🏻点赞加关注😘鼓励一下博主哦,不然下次可找不到我啦❗❗作者简介❤️作者的gitee:出小月;❤️作者的主页:出小月的《程序员历险记》❤️专栏:《C语言》,《数据结构初阶》😊希望大家都能够:好好学习,天天编程❗❗❗文章目录前言作者简介一、树概念及结构二、二叉树结构及遍历1、二叉树性质1、二叉树结构2、特殊的二叉树1️⃣满二叉树2️⃣完全二叉树3、二叉树的遍历1️⃣前序遍

用java实现二叉树的后序遍历(递归和迭代)

目录1.题目内容2.用递归实现后序遍历2.1解题思路2.2代码3.用迭代实现后序遍历3.1解题思路3.2代码1.题目内容给你一棵二叉树的根节点root,返回其节点值的后序遍历。示例1:输入:root=[1,null,2,3]输出:[3,2,1]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]2.用递归实现后序遍历2.1解题思路后序遍历:左右根递归:一种调用自己的循环先递归的遍历左子树,再递归的遍历右子树,最后输出根节点。此方法是将以root为根的二叉树进行后序遍历,将每一个节点套用此方法。1.重复的子问题。       先遍历左子树,再遍历右子树,再输出根节点。

十道题带你手撕二叉树

十道题带你手撕二叉树1.单值二叉树2.相同的树3.对称二叉树4.二叉树的前序遍历5.二叉树的中序遍历6.二叉树的后序遍历7.另一棵树的子树8.二叉树的遍历9.翻转二叉树10.二叉树的销毁1.单值二叉树题目:思路一:(遍历的方法)将根节点的值与二叉树中的每一个节点存储的val值进行比较,如果不同就返回false,如果全部相同,就返回true。代码:bool_isUnivalTree(structTreeNode*root,intnum)//辅助函数{if(root==NULL)//只有一个节点或者递归调用到叶子节点的字节点时returntrue;elseif(root->val==num)//当

十道题带你手撕二叉树

十道题带你手撕二叉树1.单值二叉树2.相同的树3.对称二叉树4.二叉树的前序遍历5.二叉树的中序遍历6.二叉树的后序遍历7.另一棵树的子树8.二叉树的遍历9.翻转二叉树10.二叉树的销毁1.单值二叉树题目:思路一:(遍历的方法)将根节点的值与二叉树中的每一个节点存储的val值进行比较,如果不同就返回false,如果全部相同,就返回true。代码:bool_isUnivalTree(structTreeNode*root,intnum)//辅助函数{if(root==NULL)//只有一个节点或者递归调用到叶子节点的字节点时returntrue;elseif(root->val==num)//当

详解二叉树,带你彻底搞懂二叉树、堆排序 、向上调整算法、向下调整算法【数据结构】

文章目录树树的相关概念树的表示孩子兄弟表示法特殊的二叉树满二叉树完全二叉树二叉树性质二叉树的顺序结构堆小根堆大根堆堆的实现堆的初始化堆向上调整算法(logN)堆的插入向下调整算法堆的删除拿到堆顶的数据获取堆的数据个数堆是否为空堆排序升序建堆时间复杂度TOP-K问题树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1因此,树是递归定义的注意:树形结

详解二叉树,带你彻底搞懂二叉树、堆排序 、向上调整算法、向下调整算法【数据结构】

文章目录树树的相关概念树的表示孩子兄弟表示法特殊的二叉树满二叉树完全二叉树二叉树性质二叉树的顺序结构堆小根堆大根堆堆的实现堆的初始化堆向上调整算法(logN)堆的插入向下调整算法堆的删除拿到堆顶的数据获取堆的数据个数堆是否为空堆排序升序建堆时间复杂度TOP-K问题树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1因此,树是递归定义的注意:树形结

Unity四叉树地图

        当使用Unity构建大规模的游戏地图或场景时,使用四叉树数据结构可以提高性能和效率。四叉树是一种基于分割的数据结构,将空间划分为四个相等的子区域,并以递归方式构建树结构。在游戏开发中,四叉树常用于空间分区、碰撞检测和可视化剔除等方面。         1.什么是四叉树?   四叉树是一种二维空间分割树结构,每个节点将空间划分为四个子区域。每个节点可以是根节点,也可以是叶子节点。根节点代表整个空间,而叶子节点代表划分后的最小区域。通过递归地划分空间,可以构建出一棵完整的四叉树。        2.为什么使用四叉树生成地图?   在大规模的游戏地图或场景中,使用四叉树可以提高性能和

菜鸟的刷题之路之二叉树

💕“成功不是终点,失败不是终结,勇气才是启程的第一步。”💕🐼作者:不能再留遗憾了🐼🎆专栏:菜鸟的刷题之路🎆🚗本文章主要内容:将有序数组转换为二叉搜索树、二叉搜索树中第K小的元素和叶子相似的树的详细题解🚗文章目录将有序数组转换为二叉搜索树题目要求做题思路代码实现二叉搜索树中第K小的元素题目要求做题思路代码实现叶子相似的树题目要求做题思路代码实现将有序数组转换为二叉搜索树将有序数组转换为二叉搜索树(难度:简单)题目要求给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。示例:输入

二叉树的链式结构 - C语言(含有大量递归)

目录:🍔前言🍔二叉树链式结构的实现🍟基本构架😍代码:🍔二叉树的遍历🍟前序遍历🍟中序遍历🍟后序遍历🍟层序遍历🔴层序遍历的思路及代码🍔 构建二叉树 😍代码:🍔二叉树销毁😍代码:  🍔二叉树节点个数😍代码:🍔二叉树叶子节点个数😍代码:🍔二叉树第k层节点个数😍代码: 🍔二叉树查找值为x的节点😍代码:🍔判断二叉树是否是完全二叉树😍代码:😍二叉树的链式结构所有代码汇总😍✅BinaryTree.c✅Queue.c🍔前言    🥰我们学习完二叉树的“堆”以及堆的应用以后还有一个在平时面试题目中出现频率也非常高的结构等着我们呢,那就是—二叉树的链式结构(二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来