難度:簡單
題目描述:
思路總結:沒什麼可說的,遞迴+迭代兩種方法。
題解一:(遞迴)
# 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...