Leetcode Day11 1
剑指 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
也是递归不是很难,但是我一开始思路错了,先对称然后比较是否为一棵树,就复杂了
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetric(self, root: TreeNode) -> bool:
def judge(l:TreeNode,r:TreeNode):
if l==None and r==None:return True
if l==None or r==None or l.val!=r.val:return False
return judge(l.left, r.right) and judge(l.right,r.left)
if root==None:return True
else:
return judge(root.left,root.right)
