0100-Same Tree(相同的树)
生活随笔
收集整理的這篇文章主要介紹了
0100-Same Tree(相同的树)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這個(gè)系列算是出于個(gè)人興趣開的一個(gè)新坑吧,最近看到同學(xué)刷LeetCode算法題,就想寫寫那些可以一行Python代碼寫出來的題目,因此本專欄的文章的解題方式效率不做保證,只為追求“一行的浪漫”。
題目
題解
給你兩棵二叉樹的根節(jié)點(diǎn) p 和 q ,編寫一個(gè)函數(shù)來檢驗(yàn)這兩棵樹是否相同。如果兩個(gè)樹在結(jié)構(gòu)上相同,并且節(jié)點(diǎn)具有相同的值,則認(rèn)為它們是相同的。本題難度為Easy。
我們可以理解,根據(jù)base case,兩個(gè)二叉樹相同的條件為:兩棵樹都非空+根節(jié)點(diǎn)值相同+左子樹相同+右子樹相同。需要注意特判條件,如果兩棵樹都是空樹那么必然相同;如果兩棵樹其中只有一棵樹為空樹那么必不相同。
代碼
實(shí)現(xiàn)上我們可以通過遞歸來進(jìn)行深度優(yōu)先搜索,實(shí)現(xiàn)整個(gè)樹的判斷。
# 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))提交的反饋如下。
總結(jié)
以上是生活随笔為你收集整理的0100-Same Tree(相同的树)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pandas条件筛选 | Python技
- 下一篇: 算法模板-对称性递归