AcWing 39 對稱的二叉樹(python版)

2021-10-06 12:59:14 字數 1091 閱讀 8357

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。

如果一棵二叉樹和它的映象一樣,那麼它是對稱的。

樣例

對於一棵對稱的二叉樹,需要判斷其根節點的左右兩棵子樹是否為映象,

1、左子樹的根節點與右子樹的根節點值相等

2、左子樹根節點的左孩子與右子樹根節點的右孩子互為映象,左子樹根節點的右孩子與右子樹根節點的左孩子互為映象。

因此,需要遍歷子樹的所有節點,故可採用遞迴思想來解出此題。

# 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):

defissymmetric

(self, root)

:"""

:type root: treenode

:rtype: bool

"""ifnot root:

return

true

else

:return self.mirror(root.left, root.right)

defmirror

(self, l, r)

:# 遞迴的終止條件

ifnot l or

not r:

# 兩個都空返回true,任意乙個空返回false

return

not l and

not r

# 遞迴判斷是否互為映象

return l.val == r.val and self.mirror(l.left, r.right)

and self.mirror(l.right, r.left)

AcWing 39 對稱的二叉樹

題目描述 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。樣例如下圖所示二叉樹 1,2,2,3,4,4,3,null,null,null,null,null,null,null,null 為對稱二叉樹 1 2 2 3 4 4 3 如下圖所示二叉樹 1,2...

39 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。樣例如下圖所示二叉樹 1,2,2,3,4,4,3,null,null,null,null,null,null,null,null 為對稱二叉樹 1 2 2 3 4 4 3 如下圖所示二叉樹 1,2,2,nu...

39 對稱的二叉樹

和上一題差不多,上一題是變成映象,這一題是判斷是不是映象。definition for a binary tree node.struct treenode class solution bool dfs treenode p,treenode q else 上面的if else 可以直接寫成如下 ...