101 對稱二叉樹

2021-09-29 15:16:15 字數 1726 閱讀 1226

難度:簡單

題目描述:

思路總結:沒什麼可說的,遞迴+迭代兩種方法。

題解一:(遞迴)

# 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

:#思路:遞迴+迭代

return self.ismetric(root,root)

defismetric

(self,n1,n2)

:#兩種情況,父節點相同,右子節點=左子節點

ifnot n1 and

not n2:

return

true

ifnot n1 or

not n2:

return

false

return n1.val==n2.val and self.ismetric(n1.left,n2.right)

and self.ismetric(n1.right,n2.left)

題解一結果:

題解二:(迭代)

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

from collections import deque

class

solution

:def

issymmetric

(self, root: treenode)

->

bool

:#思路:遞迴+迭代

queue = deque(

[root, root]

)while queue:

l, r = queue.popleft(

),queue.popleft()if

not l and

not r:

continue

ifnot l or

not r:

return

false

if l.val != r.val:

return

false

return

true

題解二結果:

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。思路 遞迴就用dfs,迭代是b...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。解題思路 對稱二叉樹可以理解...

101 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。使用輔助空間佇列 defi...