劍指Offer系列28 對稱的二叉樹

2021-10-06 14:58:15 字數 1380 閱讀 9348

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。

例如,二叉樹 [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示例 1:

輸入:root = [1,2,2,3,4,4,3]

輸出:true

示例 2:

輸入:root = [1,2,2,null,3,null,3]

輸出:false

限制:0 <= 節點個數 <= 1000

python

# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

# 對稱二叉樹定義:l.val=r.val 且 l.left.val=r.right.val 且 l.right.val=r.left.val

# 採用遞迴法判別,o(n)

class

solution

:def

issymmetric

(self, root: treenode)

->

bool

:# 比較函式

defcmp

(l,r):if

not l and

not r:

return

true

# 終止條件1:節點都為空

ifnot l or

not r or l.val != r.val:

return

false

# 終止條件2:有一節點為空或兩節點值不一

return cmp(l.left,r.right)

and cmp(l.right,r.left)

# 繼續遞迴其子節點

return cmp(root.left,root.right)

if root else

true

c++
/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

bool

cmp(treenode* l, treenode* r)

};

leetcode 劍指offer28 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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示例 1 輸入 root 1,2,2...

打卡系列 劍指 Offer 28 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 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 public boolean is...

劍指offer 28對稱的二叉樹

題目 判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。思路分析 剛解答過27題,容易受上題影響,但大致思路是一致的 遞迴和迭代。舉乙個對稱的二叉樹例子可知,若二叉樹是對稱的,則其左子樹的左節點和其右子樹的右節點相等,左子樹的右節點和其右子樹的左節點相等。遞迴public b...