Loading

上一页 1 2 3 4 5 6 ··· 18 下一页
摘要: 题目 剑指 Offer 32 - III. 从上到下打印二叉树 III 思路1 这题又是上一题剑指 Offer 32 - II. 从上到下打印二叉树 II的升级版,要求我们每层的遍历:一层是从左往右,另一层从右往左,因此可以使用一个布尔值flag来记录每次的状态(每次遍历结束后将flag取反),如果 阅读全文
posted @ 2021-11-25 23:46 linzeliang 阅读(19) 评论(0) 推荐(1) 编辑
摘要: 题目 剑指 Offer 32 - II. 从上到下打印二叉树 II 思路1 和剑指 Offer 32 - I. 从上到下打印二叉树很类似,不过这一题多加了一个条件,就是是要按层来存储节点的 在每次循环的时候要先获取队列中存在多少个元素size,这代表当前层有多少个节点,然后我们再用一个内循环将这些节 阅读全文
posted @ 2021-11-25 23:22 linzeliang 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 32 - I. 从上到下打印二叉树 思路1 BFS广度优先搜索遍历二叉树,使用队列存储节点 算法执行流程如下: 如果root,不为空,先加入队列,否则直接结束(因为一个元素都没有了嘛) 从队列queue中取出队头元素,存入列表res中,然后如果他的左节 / 右节点点不为空,就 阅读全文
posted @ 2021-11-25 23:09 linzeliang 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 55 - II. 平衡二叉树 思路1(后序遍历+剪枝) 这题是上一题剑指 Offer 55 - I. 二叉树的深度的进阶,逻辑代码和那个一样,也是后续遍历,获取两个子节点较大的那个深度再加上当前一层返回给父节点,是自底向上的 也为要求是否为平很二叉树,要保证他的左子树和右子树 阅读全文
posted @ 2021-11-24 22:51 linzeliang 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 55 - I. 二叉树的深度 思路1(DFS) 后续遍历吧,先遍历到最深(递归到末尾返回0),然后从后面一步一步比较取大的值返回,每次返回层数都加1, 执行流程是怎样的:比如其中一个节点左子树为空,右子树有一个叶子节点,那么 0 > 1 ,肯定选 1 ,再加上当前一层 1 , 阅读全文
posted @ 2021-11-24 20:12 linzeliang 阅读(27) 评论(0) 推荐(1) 编辑
摘要: 题目 剑指 Offer 54. 二叉搜索树的第k大节点 思路1 二叉搜索树的特性就是中序遍历结果为递增序列,而题目要求的是第 k 大节点,所以就应该是要遍历结果为降序, 按照先遍历左子树、输出节点、遍历右子树得到的是升序结果,要得到降序,需要按照先遍历右子树、输出节点、再遍历左子树即可 什么时候结束 阅读全文
posted @ 2021-11-24 19:04 linzeliang 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 28. 对称的二叉树 思路1 看到这题首先想到可以将二叉树复制一份镜像的,然后进行后续遍历比较两棵树的每一个节点是否相等,但是这样未免太复杂了,因此我们可以用更好的方法来解决 一般来说,二叉树的后续遍历是从左子树开始的,但是我们也可以调换一下位置,从右子树开始递归,这样子和左 阅读全文
posted @ 2021-11-24 12:33 linzeliang 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 27. 二叉树的镜像 思路1(递归) 我们可以使用深度优先搜索,先递归到链表的末尾,然后从末尾开始两两交换。就相当于后续遍历而已 记得要先保存下来node.right节点,因为我们在递归完左边才递归右边,而递归完左边的时候,直接把node.right的指向修改了,如果事先不保 阅读全文
posted @ 2021-11-24 01:16 linzeliang 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 题目 剑指 Offer 13. 机器人的运动范围 思路1(DFS) 通过DFS递归,先往一个方向递归到最深地方,然后回溯,直到吧所有的条件都访问一遍 我们使用visited数组记录在访问过程中被访问的位置(因为每个位置最多只能访问一次) 然后每次递归都要判断是否满足如下条件: 不超边界,始终坐标位置 阅读全文
posted @ 2021-11-21 21:10 linzeliang 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 二分法模版及细节 —— 转载自博客园 二分查找算法细节详解 我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。 不要气馁,因为二分查找其实并不简单。思路很简单,细节是魔鬼。 本文以问答的形式,探究几个最常用的二分查找场景:寻找 阅读全文
posted @ 2021-11-21 17:55 linzeliang 阅读(297) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 18 下一页