第十三天| 层序遍历10道题 226.翻转二叉树 101.对称二叉树

层序遍历10道题

思路:使用deque储存节点,一层一层往下处理。每一层用一个for循环deque的长度

102.二叉树的层序遍历

107.二叉树的层次遍历II

从下到上层序遍历

199.二叉树的右视图

返回每层最右边元素的值

637.二叉树的层平均值

返回每层节点值的平均

429.N叉树的层序遍历

515.在每个树行中找最大值

116.填充每个节点的下一个右侧节点指针

给定一个完美二叉树,其中每个节点除了最后一层之外,每个节点都有两个孩子。节点的next指针应该指向其右侧节点,如果没有右侧节点,则将next指针设置为NULL。初始时,所有next指针都被设置为NULL。

117.填充每个节点的下一个右侧节点指针II

给定一个二叉树,其中节点除了最后一层之外,每个节点可能具有不同的孩子数量。节点的next指针应该指向其右侧节点,如果没有右侧节点,则将next指针设置为NULL。初始时,所有next指针都被设置为NULL。

104.二叉树的最大深度

111.二叉树的最小深度

226.翻转二叉树 

翻转一棵二叉树。

思路:只要把每一个节点的左右孩子翻转一下,就可以达到整体翻转的效果

这道题目使用前序遍历和后序遍历都可以,唯独中序遍历不方便,因为中序遍历会把某些节点的左右孩子翻转了两次!

101.对称二叉树 2 

给定一个二叉树,检查它是否是镜像对称的。

思路:

1. 递归法:终止条件:if 左右都为空,对称,返回true;elif 有一个为空,不对称,return false;elif 左右都有值,但值不等,不对称 return false。递归条件:else 比较 left.left vs right.right 和 left.right vs right.left.

2. 迭代法:用栈实现递归法的思路而已

以下是卡哥资料

 层序遍历 

看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大家可以很快刷了十道题。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0102.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E5%BA%8F%E9%81%8D%E5%8E%86.html

 226.翻转二叉树 (优先掌握递归) 

这道题目 一些做过的同学 理解的也不够深入,建议大家先看我的视频讲解,无论做过没做过,都会有很大收获。

题目链接/文章讲解/视频讲解:https://programmercarl.com/0226.%E7%BF%BB%E8%BD%AC%E4%BA%8C%E5%8F%89%E6%A0%91.html

 101. 对称二叉树 (优先掌握递归)  

先看视频讲解,会更容易一些。 

题目链接/文章讲解/视频讲解:https://programmercarl.com/0101.%E5%AF%B9%E7%A7%B0%E4%BA%8C%E5%8F%89%E6%A0%91.html 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容