技术栈
二叉树
linweidong
11 小时前
二叉树
·
cuda
·
内存泄漏
·
寄存器
·
c++面试
·
c++面经
·
混合编译
中科曙光C++面试题及参考答案
C和C++作为后端开发中常用的编程语言,二者存在继承与发展的关系,也有核心层面的差异,这些差异体现在设计理念、编程范式、语法特性等多个维度,在部署和实际开发中会直接影响代码的编写、编译和运行逻辑。
漫随流水
13 小时前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(257.二叉树的所有路径)
1.递归函数参数以及返回值要传入根节点,记录每一条路径的path,和存放结果集的result,这里递归不需要返回值,代码如下:
漫随流水
2 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(104.二叉树的最大深度)
确定递归函数的参数和返回值:参数就是传入树的根节点,返回就返回这棵树的深度,所以返回值为int类型。确定终止条件:如果为空节点的话,就返回0,表示高度为0。
漫随流水
2 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(101.对称二叉树)
关键点详解:空节点处理:使用INT_MIN标记空节点,确保能区分节点值为INT_MIN的情况即使是空节点也要加入队列,确保层次结构正确
漫随流水
2 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(559.N叉树的最大深度)
if (root == 0) return 0;递归基准情况:空节点深度为0在C++中,0、NULL、nullptr都可以表示空指针
EXtreme35
7 天前
c语言
·
数据结构
·
算法
·
二叉树
·
递归
【数据结构】彻底搞懂二叉树:四种遍历逻辑、经典OJ题与递归性能全解析
🏠 个人主页: EXtreme35📚 个人专栏:二叉树是一种重要的数据结构,它具有一些独特的性质,这些性质在算法设计和数据结构的优化中非常有用。以下是二叉树的一些基本性质:
漫随流水
7 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(515.在每个树行中找最大值)
BFS层序遍历:使用队列进行广度优先搜索,按层遍历二叉树每层最大值计算:初始化每层的最大值为 INT_MIN(最小整数,包含在 <climits> 或 <limits.h> 中)
漫随流水
7 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(429.N叉树的层序遍历)
漫随流水
7 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(116.填充每个节点的下一个右侧节点指针)
改进代码
R-G-B
8 天前
数据结构
·
算法
·
二叉树
·
bm28
·
二叉树的最大深度
BM28 二叉树的最大深度
具体做法:复杂度分析:复杂度分析:
漫随流水
8 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(111.二叉树的最小深度)
相对于 104.二叉树的最大深度 ,本题还也可以使用层序遍历的方式来解决,思路是一样的。需要注意的是,只有当左右孩子都为空的时候,才说明遍历的最低点了。如果其中一个孩子为空则不是最低点
星火开发设计
8 天前
java
·
数据结构
·
c++
·
学习
·
二叉树
·
知识
·
期末考试
二叉树详解及C++实现
二叉树(Binary Tree)是一种重要的树形数据结构,它的每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的子树具有明确的左右顺序,不能随意交换。
漫随流水
8 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(637.二叉树的层平均值)
本题就是层序遍历的时候把一层求个总和再取一个均值。
漫随流水
8 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(102.二叉树的层序遍历)
逻辑连贯:代码流程更顺畅,先判断根节点是否为空,不为空则入队减少return语句:避免提前返回,代码结构更统一
漫随流水
8 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(二叉树的层序遍历Ⅱ)
相对于102.二叉树的层序遍历,就是最后把result数组反转一下就可以了。
漫随流水
9 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(199.二叉树的右视图)
层序遍历的时候,判断是否遍历到单层的最后面的元素,如果是,就放进result数组中,随后返回result就可以了。
漫随流水
9 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(145.二叉树的后序遍历)
来看后序遍历是左右中,先序遍历是中左右,后序遍历是左右中,那么我们只需要调整一下先序遍历的迭代(先右结点入栈,再左结点入栈)的代码顺序,就变成中右左(先左结点入栈,再右结点入栈)的遍历顺序,然后在反转result数组,输出的结果顺序就是左右中了,如下图:
漫随流水
9 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(94.二叉树的中序遍历)
为什么前序遍历的代码,不能和中序遍历通用呢,因为前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以才能写出相对简洁的代码,因为要访问的元素和要处理的元素顺序是一致的,都是中间节点。
漫随流水
10 天前
数据结构
·
算法
·
leetcode
·
二叉树
leetcode算法(144.二叉树的前序遍历)
结果聚合器:收集递归遍历的所有结果共享容器:所有递归层操作同一个容器效率保证:避免拷贝,O(1)传递成本
汉克老师
11 天前
c++
·
算法
·
二叉树
·
动态规划
·
哈夫曼编码
·
gesp6级
·
gesp六级
GESP2025年12月认证C++六级真题与解析(单选题8-15)
这道题不是考你会不会写哈夫曼编码, 而是考你是否真正理解👇哈夫曼树在“合并两个最小节点”时, 新节点到底是什么? 要放进哪一个队列?