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