python - 我的代码和检查两个二叉树是否相同的解决方案有什么区别?
问题描述
我正在编写代码来检查两棵树是否相同,但我需要帮助来确定我编写的代码与实际解决方案之间有什么不同。
这是我的代码:
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if not p or not q:
return False
if not p and not q:
return True
if p.val != q.val:
return False
return self.isSameTree(p.right,q.right) and self.isSameTree(p.left,q.left)
这是正确的代码:
class Solution:
def isSameTree(self, p, q):
if not p and not q:
return True
if not q or not p:
return False
if p.val != q.val:
return False
return self.isSameTree(p.right, q.right) and \
self.isSameTree(p.left, q.left)
解决方案
条件if not p or not q:
包含 p 和 q 为 None 的情况,在这种情况下,当您在代码中 return 时,两棵树显然是相同的False
。
推荐阅读
- r - 如果 data.table 列中的单个值不符合特定条件,则替换它
- sas - 将 SAS 字符变量与列表匹配
- syntax - 具有多个元素的数组的真值是不明确的。尝试使用 np.linspace 时使用 a.any() 或 a.all()
- mysql - 最新的 Mysql 和 Postgres 是否会自动准备每个查询?
- python - 将子进程 stdout 和 stderr 重定向到记录器
- php - 如何使用 fpdf 生成生成代码
- node.js - 异步外部函数留下开放句柄 - Jest、Supertest、Express
- reactjs - Linting 类组件 props 和状态接口声明顺序
- sql - 使用 RANK OVER PARTITION 比较前一行结果
- python - 导入 HDF5 和 h5py 模块时出错