Loading

摘要: 题目 剑指 Offer 55 - II. 平衡二叉树 思路1(后序遍历+剪枝) 这题是上一题剑指 Offer 55 - I. 二叉树的深度的进阶,逻辑代码和那个一样,也是后续遍历,获取两个子节点较大的那个深度再加上当前一层返回给父节点,是自底向上的 也为要求是否为平很二叉树,要保证他的左子树和右子树 阅读全文
posted @ 2021-11-24 22:51 linzeliang 阅读(66) 评论(0) 推荐(0)
摘要: 题目 剑指 Offer 55 - I. 二叉树的深度 思路1(DFS) 后续遍历吧,先遍历到最深(递归到末尾返回0),然后从后面一步一步比较取大的值返回,每次返回层数都加1, 执行流程是怎样的:比如其中一个节点左子树为空,右子树有一个叶子节点,那么 0 > 1 ,肯定选 1 ,再加上当前一层 1 , 阅读全文
posted @ 2021-11-24 20:12 linzeliang 阅读(39) 评论(0) 推荐(1)
摘要: 题目 剑指 Offer 54. 二叉搜索树的第k大节点 思路1 二叉搜索树的特性就是中序遍历结果为递增序列,而题目要求的是第 k 大节点,所以就应该是要遍历结果为降序, 按照先遍历左子树、输出节点、遍历右子树得到的是升序结果,要得到降序,需要按照先遍历右子树、输出节点、再遍历左子树即可 什么时候结束 阅读全文
posted @ 2021-11-24 19:04 linzeliang 阅读(47) 评论(0) 推荐(0)
摘要: 题目 剑指 Offer 28. 对称的二叉树 思路1 看到这题首先想到可以将二叉树复制一份镜像的,然后进行后续遍历比较两棵树的每一个节点是否相等,但是这样未免太复杂了,因此我们可以用更好的方法来解决 一般来说,二叉树的后续遍历是从左子树开始的,但是我们也可以调换一下位置,从右子树开始递归,这样子和左 阅读全文
posted @ 2021-11-24 12:33 linzeliang 阅读(28) 评论(0) 推荐(0)
摘要: 题目 剑指 Offer 27. 二叉树的镜像 思路1(递归) 我们可以使用深度优先搜索,先递归到链表的末尾,然后从末尾开始两两交换。就相当于后续遍历而已 记得要先保存下来node.right节点,因为我们在递归完左边才递归右边,而递归完左边的时候,直接把node.right的指向修改了,如果事先不保 阅读全文
posted @ 2021-11-24 01:16 linzeliang 阅读(693) 评论(0) 推荐(0)