101 對稱二叉樹

2021-08-28 17:46:36 字數 1277 閱讀 4824

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

例如,二叉樹[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...