(專題筆記)Leetcode 3 樹

2021-10-06 17:43:10 字數 2531 閱讀 7894

#100. 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。

如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。

示例 1:

示例 2:

示例 3:

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

issametree

(self, p: treenode, q: treenode)

->

bool

:return p.val == q.val and

all(

map(self.issametree,

(p.left, p.right)

,(q.left, q.right)))

if p and q else p is q

#101. 對稱二叉樹給定乙個二叉樹,檢查它是否是映象對稱的。

例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。

但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

issymmetric

(self, root: treenode)

->

bool:if

not root:

return

true

return self.symmetric(root.left, root.right)

defsymmetric

(self, l1, l2):if

not l1 or

not l2:

ifnot l1 and

not l2:

return

true

else

:return

false

if l1.val == l2.val:

return self.symmetric(l1.left, l2.right)

and self.symmetric(l1.right, l2.left)

else

:return

false

#104. 二叉樹的最大深度給定乙個二叉樹,找出其最大深度,二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。葉子節點是指沒有子節點的節點。

示例:給定二叉樹 [3,9,20,null,null,15,7],

返回它的最大深度 3 。

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:def

maxdepth

(self, root: treenode)

->

int:

return1+

max(

map(self.maxdepth,

(root.left, root.right)))

if root else

0

Leetcode 3題目解答

leetcode 3題目解答 乙個字串,要得到連續各個元素都不同的最長子串長度。該函式返回乙個maxlen即最長子串的長度,用乙個hashmap存放字母以及其對應下標,利用for迴圈裡的i遍歷該string,則對於每個字母,有以下兩種情況 1 若當前字母不在hashmap中則放入,用乙個len來記錄...

leetcode 3 三數之和

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 class solu...

leetcode 3三數之和

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c 使得 a b c 0 找出所有滿足條件且不重複的三元組。注意 答案中不可以包含重複的三元組。示例 給定陣列 nums 1,0,1,2,1,4 滿足要求的三元組集合為 1,0,1 1,1,2 如下 class s...