首页 > 其他分享 >代码随想录day15 平衡二叉树 | 二叉树的所有路径 | 左叶子之和 | 完全二叉树的节点个数

代码随想录day15 平衡二叉树 | 二叉树的所有路径 | 左叶子之和 | 完全二叉树的节点个数

时间:2024-07-05 23:20:28浏览次数:24  
标签:知识点 遍历 随想录 叶子 day15 解题 二叉树 节点

平衡二叉树

平衡二叉树

解题思路

二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。
二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。
这道题由于需要求节点的高度差来进行判断,因此我们需要用后序遍历,先左右,后中间。推荐使用递归把每个节点的高度算出来,然后通过两个子节点左右相减,判断是否为平衡二叉树。当有结果不符合时,设为-1。

知识点

递归,二叉树

心得

复习了昨天有关深度和高度的题目,第一次做时不知道如何将判断高度差的代码写对,后来看了题解才恍然大悟。

二叉树的所有路径

二叉树的所有路径

解题思路

这个主要考虑的是字符串的格式问题,在这里我们需要进行回溯,即当遍历到一个叶子节点并存储完之后,字符串需要回退至上一个没有加“->”的版本,再接着进行遍历。我们可以使用栈或者递归来解决。

知识点

回溯,字符串,堆栈,二叉树

心得

一开始确实忘记了需要回溯这件事,想通了之后一下子就把代码写出来了

左叶子之和

左叶子之和

解题思路

判断左叶子的思路就是看一个节点的左节点是否为叶子节点即可,把这个思路和遍历的思路合并一下就行。

知识点

叶子节点,二叉树

心得

简单的题目

完全二叉树的节点个数

完全二叉树的节点个数

解题思路

主要讲讲如何利用完全二叉树的特性,完全二叉树就是除了倒数第二次层和最后一层外,每一层的节点都拥有左右子节点,最后一层的节点全部没有子节点。我们可以利用这个特性让每个节点只遍历其左节点和其左节点的左节点直到最后一层来得到该节点的深度。右节点同理。如果最后一个节点的左右深度相同,则最后的结果等于2^n - 1, n为深度。
这样的过程我们也可以

知识点

完全二叉树,二叉树的深度,二叉树的遍历

心得

学到了如何利用完全二叉树的特性来解题。

标签:知识点,遍历,随想录,叶子,day15,解题,二叉树,节点
From: https://www.cnblogs.com/TKK-YLF/p/18286741

相关文章