当前位置: 首页 > news >正文

leetcode_深度搜索和广度搜索 100. 相同的树

100. 相同的树

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

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

  • 思路: (递归法)

    • 返回True的情况:
      • 两棵树都为空
      • 两棵树相同
    • 返回False的情况:
      • 两棵树不为空但节点分布不同或节点值不同不相同
      • 两棵树有一个为空
    • 注: 先判断是否为空, 再判断节点值是否相同
- # 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: Optional[TreeNode]:type q: Optional[TreeNode]:rtype: bool"""if not p and not q:# 如果p,q都为空,返回Truereturn Trueelif not p or not q:# 如果p,q其中之一为空,返回Falsereturn Falseelif p.val != q.val:# 如果根节点值不同,返回Falsereturn Falseelse:# 调用自身分别对p,q两树的左子树和右子树进行判别return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)      
  • 时间复杂度: O(n)
  • 空间复杂度: O(h),h是树的高度

http://www.mrgr.cn/news/89998.html

相关文章:

  • 【设计模式】【行为型模式】模板方法模式(Template Method)
  • (四)C++的类与动态内存分配
  • MySQL数据库(七)SQL 优化
  • C# Winform怎么设计串口,客户端和相机控件界面显示
  • Qt修仙之路2-1 仿QQ登入 法宝初成
  • ASP.NET Core JWT Version
  • 如何使用DeepSeek
  • viem库
  • Kotlin 2.1.0 入门教程(十一)for、while、return、break、continue
  • 10vue3实战-----实现登录的基本功能
  • Python截图轻量化工具
  • 激活函数篇 03 —— ReLU、LeakyReLU、RandomizedLeakkyReLU、PReLU、ELU
  • BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)
  • 2025.2.9机器学习笔记:PINN文献阅读
  • 机器学习基本概念(附代码)
  • windows通过网络向Ubuntu发送文件/目录
  • python循环
  • redis专栏解读
  • 外部中断实验 #STM32F407
  • 半导体制造工艺讲解