題目
請實現(xiàn)一個函數(shù),用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的鏡像一樣,那么它是對稱的。
例如,二叉樹 [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 <= 節(jié)點個數(shù) <= 1000
注意:本題與主站 101 題相同:https://leetcode-cn.com/problems/symmetric-tree/
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof
著作權歸領扣網絡所有。商業(yè)轉載請聯(lián)系官方授權,非商業(yè)轉載請注明出處。
解法
遞歸大法好。
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
if root is None : return True
def sym(left, right):
if left is None and right is None : return True
if left and right and left.val == right.val :
return sym(left.right,right.left) and sym(left.left, right.right)
return False
return sym(root.left,root.right)
總結
做這種題目畫個圖看著不容易出錯。
一開始寫錯了,寫成了每個節(jié)點下面的左右子節(jié)點相等,這樣不能保證鏡像。