0100-Same Tree(相同的树)
这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。
题目
题解
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。本题难度为Easy。
我们可以理解,根据base case,两个二叉树相同的条件为:两棵树都非空+根节点值相同+左子树相同+右子树相同。需要注意特判条件,如果两棵树都是空树那么必然相同;如果两棵树其中只有一棵树为空树那么必不相同。
代码
实现上我们可以通过递归来进行深度优先搜索,实现整个树的判断。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:return True if not p and not q else bool((p and q) and (p.val == q.val) and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right))
提交的反馈如下。
0100-Same Tree(相同的树)相关推荐
- C++Persistent segment tree持久段树的实现算法(附完整源码)
C++Persistent segment tree持久段树的实现算法 C++Persistent segment tree持久段树的实现算法完整源码(定义,实现,main函数测试) C++Persi ...
- C++Fenwick tree芬威克树的实现算法(附完整源码)
C++Fenwick tree芬威克树的实现算法 C++Fenwick tree芬威克树的实现算法完整源码(定义,实现,main函数测试) C++Fenwick tree芬威克树的实现算法完整源码(定 ...
- Android 驱动(12)---Linux DTS(Device Tree Source)设备树详解
Linux DTS(Device Tree Source)设备树详解 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) Linux DTS(Device Tr ...
- 一首好听的英文歌lemon tree(柠檬树)的中文歌词
一首好听的英文歌lemon tree(柠檬树)的中文歌词 lemon tree的中文 i'm sitting here in a boring room.我坐在这--一间空屋子里 it's just ...
- 高通平台msm8953 Linux DTS(Device Tree Source)设备树详解之二(DTS设备树匹配过程)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇)
本系列导航: 高通平台8953 Linux DTS(Device Tree Source)设备树详解之一(背景基础知识篇) 高通平台8953 Linux DTS(Device Tree Source ...
- tree shaking(摇树优化)
tree shaking(摇树优化) 前言 随着js的不断发展,性能优化成了主流的方向,但是如何性能优化又成了现在程序员的一大苦恼,而我作为一名前端小白,也就深陷其中,最近学习到了tree shaki ...
- Linux DTS (Device Tree Source)设备树源码
Linux DTS 设备树源码 1. 简介 1.1 引入DTS的原因 1.2 文件格式 2. DTS语法 2.1 .dtsi头文件 2.2 设备节点 2.2.1 设备树中节点命名格式 2.2.2 设备 ...
- 回溯法排序树怎么画_kd tree(k-dimensional树的简称)
kd tree建立 计算各个维度方差最大的那一个.方差大说明沿该轴方向上的数据分散的越开.下图所示. 选择该特征的中位数作为分割点,小于该数的为左子树,大于的为右子树.这里用中位数是为了让左子树和右子 ...
- HDU 3333-Turing Tree(线段树解决离线询问)
题意: 给定一个长度为n的序列,给定m个查询,每次查询区间[L,R]范围内不同元素的和. 题解: x,yx,yx,y为查询的区间左右端点 用一个数组left[i]left[i]left[i],表示左边 ...
最新文章
- 机器学习数据拆分_解释了关键的机器学习概念-数据集拆分和随机森林
- Linux 硬链接和软链接的区别
- git push代码到远程新分支
- Java 函数式编程和 lambda 表达式
- java入参为方法_Java命令注入原理结合Java Instrument技术(FreeBuf首发)
- java中CyclicBarrier的使用
- 微博php sdk,手机第三方新浪微博登录php api实现分析
- Bootstrap3 屏幕阅读器和键盘导航
- “以毒攻毒”?阿里将上线“二哈”防骚扰电话应用程序
- JavaScript:gb2312转unicode -- 形式
- 神调侃!程序员必学推荐系统,我比女朋友更了解你!
- Mybatis批量insert报错的解决办法【the right syntax to use near '' at line...】
- 服务器远程桌面一直正在配置,关于远程桌面一直显示正在配置远程会话
- react 中加载静态word文档(或加载静态的html文件)
- vue实例练习和vue样式练习
- nii格式转化为png格式或者img格式
- K3 CLOUD计划管理之计划方案(MPS/MRP)
- digest 词根 gest
- 【数据库系统工程师】第13章 云计算与大数据处理
- 功率放大器的输入阻抗和输出阻抗的关系