給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹[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,迭代是bfs。這裡使用bfs一層一層查詢會更清晰。
# definition for a binary tree node.
# class treenode(object):
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class solution(object):
def issymmetric(self, root):
""":type root: treenode
:rtype: bool
"""if not root:
return true
nodeleft = [root.left]
noderight = [root.left]
while nodeleft:
# 每次迴圈都將其置空
# 用來儲存下一層
nodeleftnext =
noderightnext =
for i in range(len(nodeleft)):
if nodeleft[i] and noderight[i]:
if nodeleft[i].val != noderight[i].val:
return false
else:
# 映象:左 右 右 左
# 若有一項為空,判false
elif nodeleft[i] or noderight[i]:
return false
# 傳給下一層
nodeleft = nodeleftnext
noderight = noderightnext
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說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。解題思路 對稱二叉樹可以理解...
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...
101 對稱二叉樹
難度 簡單 題目描述 思路總結 沒什麼可說的,遞迴 迭代兩種方法。題解一 遞迴 definition for a binary tree node.class treenode def init self,x self.val x self.left none self.right none cla...