Hello大家好! 很高兴与大家见面! 给生活添点快乐,开始今天的编程之路。

我的博客:<但愿.

文章专栏:算法与数据结构

我的专栏:C语言、题目精讲、算法与数据结构、C++

若有问题评论区下讨论,我会及时回答

欢迎大家点赞、关注、收藏分享

1  单值⼆叉树

  1.1题目链接:965. 单值二叉树 - 力扣(LeetCode)

  1.2题目描述:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。

  1.3题目示例:

​

1.4题目思路:

我们先判断根结点是否为空,为空则是单之二叉树,如果不为空,则与左右结点进行比较但要保证有相应的左右结点,当根结点与左右孩子结点有一个不同则返回false,在递归判断左右子树即可。

1.5解决代码

​

2  相同的树

 2.1题目链接:100. 相同的树 - 力扣(LeetCode)

2.2题目描述;给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2.3题目示例:

2.4题目思路

【1】先判断两个二叉树的根节点是否都为空,都是空则为相同的树

【2】在判断两棵树中根结点是否是一个是空结点一个不是空结点如果是此时两棵树就不是同一颗树

【3】如果两棵树的根节点都不为空则比较两个根结点的值是否相同不同则返回false

【4】最后递归判断两颗树的左右子树,两颗树的左右子树都要相同

2.5解决代码

3对称二叉树

3.1题目链接:101. 对称二叉树 - 力扣(LeetCode)

3.2题目描述:给你一个二叉树的根节点 root , 检查它是否轴对称。

3.3题目示例:

3.4题目思路;(我们只要判断左右子树是否为轴对称)

【1】当根节点的左右孩子节点都为空结点则是对称二叉树

【2】当根节点的左右孩子节点有一个为空结点则不是对称二叉树

【3】当根节点的左右孩子节点都不为空则要判断左右孩子节点值是否不同

【4】当左子树的左结点等于右子树的右结点,当左子树的右结点等于右子树的左结点同时满足是则返回true最后递归递归判断即可

3.5解决代码:

4另⼀棵树的⼦树

4.1题目链接:572. 另一棵树的子树 - 力扣(LeetCode)

4.2题目描述:给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。

4.3题目示例:

4.4题目思路

【1】先判断树的根结点是否为空结点,为空返回false

【2】当根结点不为空,在从两颗树的根结点开始判断是否相同,是返回true

【3】因为只要树的左右子树有一个与该树相同即可,所以我们将树的左右子树进行递归

4.5解决代码

本篇文章就到此结束,欢迎大家订阅我的专栏,欢迎大家指正,希望有所能帮到读者更好了算法与数据结构相关知识 ,觉得有帮助的还请三联支持一下~后续会不断更新算法与数据结构相关知识,我们下期再见。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐