提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
每日刷题,从己做起。
一、反转二叉树
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
if not root:
return None
root.left, root.right = root.right, root.left
self.invertTree(root.left)
self.invertTree(root.right)
return root
二、对称二叉树
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
if not root:
return None
return self.compare(root.left, root.right)
def compare(self, left, right):
#"先排除空节点"
if left == None and right != None:
return False
elif left != None and right ==None:
return False
elif left == None and right ==None:
return True
#排除数值不同
elif left.val != right.val:
return False
#开始递归下一层
outside = self.compare(left.left, right.right)#左子树:左、右子树:右
inside = self.compare(left.right, right.left)#左子树:右、右子树:左
isSame = outside and inside #左子树:中、右子树:中
return isSame
总结
加油。