Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【leetcode刷题】20T51-相同的树

【leetcode刷题】20T51-相同的树

作者头像
木又AI帮
发布于 2020-07-16 06:19:16
发布于 2020-07-16 06:19:16
29300
代码可运行
举报
文章被收录于专栏:木又AI帮木又AI帮
运行总次数:0
代码可运行

木又同学2020年第51篇解题报告

leetcode第100题:相同的树

https://leetcode-cn.com/problems/same-tree


【题目】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例 1:
输入:       1         1
          / \       / \
         2   3     2   3

        [1,2,3],   [1,2,3]

输出: true

示例 2:
输入:      1          1
          /           \
         2             2

        [1,2],     [1,null,2]

输出: false

示例 3:
输入:       1         1
          / \       / \
         2   1     1   2

        [1,2,1],   [1,1,2]

输出: false

【思路】

比较当前节点是否相同,再递归比较其左右孩子节点是否相同。

【代码】

python版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype: bool
        """
        # 都不存在
        if not p and not q:
            return True
        # 都存在
        if p and q:
            ## 比较值是否相同
            if p.val != q.val:
                return False
            return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
        # 只有一个存在
        return False
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【面试高频题】二叉树"神级遍历"入门
Tag : 「二叉树」、「树的搜索」、「递归」、「迭代」、「中序遍历」、「Morris 遍历」
宫水三叶的刷题日记
2023/09/22
2420
【面试高频题】二叉树"神级遍历"入门
golang刷leetcode 二叉树(1)验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入: 2 / \ 1 3 输出: true 示例 2: 输入: 5 / \ 1 4 / \ 3 6 输出: false 解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节
golangLeetcode
2022/08/02
2210
求二叉树的最近公共祖先,倘若不是二叉树呢?
如果给定以下搜索二叉树: {7,1,12,0,4,11,14,#,#,3,5},如下图:
秦怀杂货店
2022/02/17
4880
求二叉树的最近公共祖先,倘若不是二叉树呢?
『LeetCode』#1刷题日记
前言 📢 本日记为个人的刷题学习日记,内容非原创,仅为自己复习知识时,能够看得懂自己写的CV的代码,快速理解题意。另外,👍力扣官方的题解很好用,三叶姐nb!!!!! 104. 二叉树的最大深度 ✅ 题意 给你一个二叉树的根结点root,判断该树的深度(层数) 思路 递归 class Solution { public int maxDepth(TreeNode root) { if(root == null) { return 0; // 根节点
客怎眠qvq
2022/11/01
2020
二叉搜索树登场!
到了二叉搜索树,开始要换一个思路了,如果没有利用好二叉搜索树的特性,就容易把简单题做成了难题了。
代码随想录
2021/09/08
3200
二叉搜索树登场!
LeetCode:把二叉搜索树转换为累加树_538
首先二叉搜索树需要中序遍历,但如果是中序遍历,计算前面节点依赖于后面节点的结果。所以将中序遍历倒过来即可。 二叉树的遍历不止3种,可以自行调整。
Yuyy
2022/06/28
2210
LeetCode:把二叉搜索树转换为累加树_538
golang刷leetcode 二叉树(9) 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
golangLeetcode
2022/08/02
2220
LeetCode 75 —— 98. 验证二叉搜索树
输入:root = [5,1,4,null,null,3,6] 输出:false 解释:根节点的值是 5 ,但是右子节点的值是 4 。 提示: 树中节点数目范围在[1, 10^4] 内 -2^31 <= Node.val <= 2^31 - 1 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/validate-binary-search-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Regan Yue
2023/07/10
2000
LeetCode 75 —— 98. 验证二叉搜索树
leetcode刷题(21)——98. 验证二叉搜索树
节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1:
老马的编程之旅
2022/06/22
1950
原创 | 手把手刷二叉搜索树(第二期)
我们前文 手把手刷二叉搜索树(第一期) 主要是利用二叉搜索树「中序遍历有序」的特性来解决了几道题目,本文来实现 BST 的基础操作:判断 BST 的合法性、增、删、查。其中「删」和「判断合法性」略微复杂。
labuladong
2021/09/23
3410
《剑指 Offer(第 2 版)》树部分JavaScript题解
《剑指 Offer(第 2 版)》通行全球的程序员经典面试秘籍。剖析典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这 5 个面试要点。
用户8921923
2022/10/24
4250
《剑指 Offer(第 2 版)》树部分JavaScript题解
验证二叉搜索树
最开始看到这道题的时候,以为是直接判断 node.right.val > node.val 和 node.left.val < node.val 对每个结点是否成立。但是这种是忽略了,二叉搜索树还有一个很重要的特点就是,左子树上所有节点的值均小于它的根节点的值,右子树上所有节点的值均大于它的根节点的值。注意是左子树和右子树所有的节点都满足才行。
木子星兮
2020/07/17
6710
剑指offer | 面试题41:二叉树的深度
死磕算法系列文章 干货 | 手撕十大经典排序算法 剑指offer | 认识面试 剑指offer | 面试题2:实现Singleton模式 剑指offer | 面试题3:二维数组的查找 剑指offer | 面试题4:替换空格 剑指offer | 面试题5:从尾到头打印链表 剑指offer | 面试题6:重建二叉树 剑指offer | 面试题7:用两个栈实现队列 剑指offer | 面试题8:旋转数组的最小数字 剑指offer | 面试题9:斐波那契数列 剑指offer | 面试题10:青蛙跳台阶问题 剑指
千羽
2022/02/23
2780
剑指offer | 面试题41:二叉树的深度
​LeetCode刷题实战450:删除二叉搜索树中的节点
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/11/29
3650
​LeetCode刷题实战450:删除二叉搜索树中的节点
万字长文!二叉树入门和刷题看这篇就够了!
今天是小浩算法 “365刷题计划” 二叉树入门 - 整合篇。本篇作为入门整合篇,已经砍去难度较大的知识点,所有列出的内容,均为必须掌握。因为很长,写下目录:
程序员小浩
2020/05/08
5870
JS算法之二叉树、二叉搜索树
今天,我们继续探索JS算法相关的知识点。我们来谈谈关于树Tree 的相关知识点和具体的算法。
前端柒八九
2022/09/22
6650
判断是不是一棵二叉搜索树!
题目地址:https://leetcode-cn.com/problems/validate-binary-search-tree/
代码随想录
2021/09/08
4610
判断是不是一棵二叉搜索树!
LeetCode 二叉树系统题解
TIPS:前中后序遍历区别在于三字中的中间那个字,前、中、后序分别对应左、根、右。
Yano_nankai
2019/11/10
9830
LeetCode 二叉树系统题解
二叉树篇二刷总结
二叉树篇,我们总共做了有关二叉树的遍历方式、求解二叉树的属性、对二叉树的修改以及构造等这几类的题型, 总结下来就是对二叉树的各种遍历方式的不同程度应用。
用户11097514
2024/05/31
1070
二叉树篇二刷总结
有关二叉树的一些题解
有关二叉树的一些题解 没有将全部思想写上,因为本着本人的一些自私所以都挑选了本人比较熟悉的思想 类名命名为中文纯属个人故意的,业务中千万不要用中文,我只是懒得起名字了 翻转二叉树 迭代 /** * @author ZVerify * @since 2022/10/30 16:41 * @see <a href="https://leetcode.cn/problems/invert-binary-tree/description/">...</a> **/ public class 翻转二叉
用户10136162
2022/11/15
2290
相关推荐
【面试高频题】二叉树"神级遍历"入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档