冷意
冷意
全部文章
分类
归档
标签
去牛客网
登录
/
注册
冷意的博客
全部文章
(共169篇)
题解 | 二叉搜索树与双向链表
1、解题思路中序遍历:二叉搜索树的中序遍历结果是升序的,因此可以通过中序遍历来调整指针。使用递归或迭代方法进行中序遍历,同时记录前驱节点 prev,并在遍历过程中调整指针。指针调整:遍历过程中,当前节点的 left 指针指向 prev。prev 的 right 指针指向当前节点(如果 prev 不为...
2025-06-26
0
8
题解 | 二叉树中和为某一值的路径(一)
1、解题思路递归方法:从根节点开始递归遍历二叉树。每遍历到一个节点,将 sum 减去当前节点的值。如果当前节点是叶子节点且剩余 sum 为0,则返回 true。否则,递归检查左子树和右子树是否存在满足条件的路径。迭代方法(DFS或BFS):使用栈(DFS)或队列(BFS)进行遍历,同时记录路径的当前...
2025-06-26
0
8
题解 | 二叉树的最大深度
1、解题思路递归方法: 二叉树的最大深度等于其左子树和右子树的最大深度中的较大者加1。递归终止条件是当前节点为空,此时深度为0。迭代方法(层次遍历): 使用队列进行层次遍历,每次遍历一层,深度加1,直到队列为空。2、代码实现C++(递归) /** * struct TreeNode { * i...
2025-06-26
0
6
题解 | 按之字形顺序打印二叉树
1、解题思路之字形层序遍历可以通过层序遍历的变种来实现:仍然使用队列进行层序遍历。根据当前层数的奇偶性决定遍历方向: 奇数层(如第1层)从左到右遍历。偶数层(如第2层)从右到左遍历。可以通过反转当前层的列表或使用双端队列来控制遍历方向。2、代码实现C++ /** * struct TreeNode...
2025-06-26
0
6
题解 | 求二叉树的层序遍历
1、解题思路层序遍历是一种广度优先搜索(BFS)的应用。我们可以使用队列来辅助实现层序遍历:将根节点放入队列。遍历当前队列中的所有节点,并将它们的值存入当前层的列表中。将这些节点的子节点(从左到右)依次加入队列。重复上述过程,直到队列为空。2、代码实现C++ /** * struct TreeNo...
2025-06-26
0
11
题解 | 二叉树的后序遍历
1、解题思路后序遍历是二叉树的一种深度优先遍历方式,顺序为:先递归遍历左子树,然后递归遍历右子树,最后访问根节点。可以通过递归或迭代(使用栈)的方式实现后序遍历。2、代码实现C++(递归) /** * struct TreeNode { * int val; * struct TreeNo...
2025-06-26
0
6
题解 | 二叉树的中序遍历
1、解题思路中序遍历是二叉树的经典遍历方式之一,顺序为:先递归遍历左子树,然后访问根节点,最后递归遍历右子树。可以通过递归或迭代(使用栈)的方式实现中序遍历。2、代码实现C++ (递归) /** * struct TreeNode { * int val; * struct TreeNod...
2025-06-26
0
7
题解 | 二叉树的前序遍历
1、解题思路前序遍历是二叉树的一种深度优先遍历方式,顺序为:访问根节点。前序遍历左子树。前序遍历右子树。可以用递归或迭代的方式实现前序遍历。2、代码实现C++ /** * struct TreeNode { * int val; * struct TreeNode *left; * s...
2025-06-26
0
7
题解 | 比较版本号
1、解题思路分割版本号:将 version1 和 version2 按 . 分割成修订号列表。比较修订号:从左到右依次比较对应位置的修订号。将修订号转换为整数(忽略前导零)进行比较。如果某个版本号的修订号数量较少,缺失的修订号视为 0。处理边界条件:所有修订号都相等时,返回 0。如果某个修订号更大,...
2025-06-26
0
6
题解 | 旋转数组的最小数字
1、解题思路二分查找:虽然数组旋转后不再完全有序,但可以利用二分查找的思想快速定位最小值。比较中间元素 nums[mid] 与右边界 nums[right] : 如果 nums[mid] < nums[right],最小值在左侧(包括 mid)。如果 nums[mid] > nums[r...
2025-06-26
0
9
首页
上一页
3
4
5
6
7
8
9
10
11
12
下一页
末页