二叉树OJ题:LeetCode--100.相同的树

这篇具有很好参考价值的文章主要介绍了二叉树OJ题:LeetCode--100.相同的树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第100道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!

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

个  人  主  页 :stackY、

C 语 言 专 栏C语言:从入门到精通

二叉树OJ题:LeetCode--100.相同的树

LeetCode--100.相同的树:https://leetcode.cn/problems/same-tree/

目录

1.题目介绍

2.实例演示

3.解题思路

代码实现:

递归展开图:


1.题目介绍

给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

二叉树OJ题:LeetCode--100.相同的树

2.实例演示

二叉树OJ题:LeetCode--100.相同的树

简单的来说就是来判断两棵二叉树的对应结点是否完全相同。

3.解题思路

判断两棵二叉树是否相等最先想到的方法就是遍历,使用结点依次比较,那么二叉树的遍历方法有许多:

1. 前序遍历:根节点、左子树、右子树

2. 中序遍历:左子树、根节点、右子树

3. 后序遍历:左子树、右子树、根节点

4. 层序遍历:一层一层遍历二叉树

以上内容可以参考:https://blog.csdn.net/Yikefore/article/details/130859450?spm=1001.2014.3001.5501

那么该选用哪种遍历二叉树的方法呢? 前序遍历是比较合适的,因为前序遍历首先访问的就是根节点,如果两棵树的根节点都不相等那么就没有必要再继续往下面进行比较了,那么关于这道题最终还是要归为这棵树的子问题,也就是它的左右子树,所以使用递归实现。

在做题时要注意几个问题:

1. 结束标志--两棵树为空树、结点不相等

2. 若两棵树都为空,需要返回true,两棵树都为空满足相同的结点

3. 有一棵树为空,另一棵树不为空,就需要结束

代码实现:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


bool isSameTree(struct TreeNode* p, struct TreeNode* q){
    //判断两棵树是否都为空树
    if(p == NULL && q == NULL)
        return true;
    //其中一颗为空就结束
    if(p == NULL || q == NULL)
        return false;
    //若都不为空,则比较结点是否相等
    if(p->val != q->val)
        return false;
    //树不为空,并且根节点相等,继续递归子问题,判断左右子树
    return isSameTree(p->left,q->left)
        && isSameTree(p->right,q->right);
}

代码解读:

首先我们对两棵树进行检查,判断两棵树是否都为空树,如果两棵树都为空树,即两棵树相等,即可返回true,如果两棵树都不为空,进行下一步的判断其中只有一棵树为空,若其中只有一颗树为空,那么表示两棵树不相等,即可返回false,若两棵树都不为空,即可判断它们的结点是否相等,若不相等,直接返回false,若相等,则直接递归判断它们的左右子树,又重新转化为了子问题,直到将两颗树全部遍历完毕。

递归展开图:

 二叉树OJ题:LeetCode--100.相同的树

朋友们、伙计们,美好的时光总是短暂的,我们本期的的分享就到此结束,最后看完别忘了留下你们弥足珍贵的三连喔,感谢大家的支持!  文章来源地址https://www.toymoban.com/news/detail-500974.html

到了这里,关于二叉树OJ题:LeetCode--100.相同的树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】单值二叉树 & 相同的树 & 翻转二叉树(五)

      目录 一,单值二叉树 题目详情: 解法:父子比较法 解题思路: 思路实现: 源代码: 二,相同的树 题目详情: 解法:比较法 解题思路: 思路实现: 源代码: 三,翻转二叉树 解法:替换法 解题思路: 思路实现: 源代码: 题目详情: 如果 二叉树 每个节点都具有 相

    2024年02月07日
    浏览(30)
  • leetcode 100.相同的树

    涉及到递归,最好多画图理解,希望对你们有帮助 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思考递归进

    2024年02月05日
    浏览(37)
  • LeetCode | 100. 相同的树

    OJ链接 判断两个节点是否等于空,两个都等于空就直接返回 true 如果一个等于空,另一个不等于空,说明 false 然后再判断两个树的值是否相等 最后递归p的左,q的左,p的右,q的右

    2024年02月05日
    浏览(30)
  • leetcode100——相同的树

    leetcode100 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例: 主要想法:使用递归的方法。 注意:在解决树的问题时,优先考虑如何通过使用递归简化问题 ,例如剑指

    2024年02月02日
    浏览(25)
  • Leetcode—100.相同的树【简单】

    之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

    2024年02月05日
    浏览(30)
  • leetcode做题笔记100. 相同的树

    给你两棵二叉树的根节点  p  和  q  ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 首先判断两个二叉树是否为空,再判断有值的情况,利用递归,若两个值相等则同时向左右子树继续进行判断 本题考

    2024年02月11日
    浏览(27)
  • 二叉树OJ题:LeetCode--226.翻转二叉树

    朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第226道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏: 数据结构与算法 个  人  主  页  : stackY、 C 语 言 专 栏 : C语言:从入门到精通 LeetCo

    2024年02月11日
    浏览(32)
  • 二叉树OJ题:LeetCode--965.单值二叉树

    朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第965道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏: 数据结构与算法 个  人  主  页  : stackY、 C 语 言 专 栏 : C语言:从入门到精通 ​ Le

    2024年02月12日
    浏览(36)
  • 二叉树OJ题:LeetCode--101.对称二叉树

    朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第144道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏: 数据结构与算法 个  人  主  页  : stackY、 C 语 言 专 栏 : C语言:从入门到精通 LeetCo

    2024年02月13日
    浏览(34)
  • Leetcode-二叉树oj题

    144. 二叉树的前序遍历 https://leetcode.cn/problems/binary-tree-preorder-traversal/ 这个题目在遍历的基础上还要求返回数组,数组里面按前序存放二叉树节点的值。 既然要返回数组,就必然要malloc一块空间,那么我们需要算出这个二叉树的节点个数,所以就创建一个函数TreeSize求出节点

    2024年02月05日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包