大概之后不会每日更新这个了,已经100题完成目前任务,以后想动脑子的时候会回来做几题。
今天更新一道。
0101题 对称二叉树【Symmetric Tree】
题目:
给定一个二叉树,检查它是否是镜像对称的。
说明:
如果你可以运用递归和迭代两种方法解决这个问题,会很加分。
例如,二叉树 [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
题目相对严谨
经典题目除Robust外无需注意太多
解题思路:
就简单递归……其实迭代思路和递归一样,就不再赘述。
class Solution:
def check(self, node1, node2):
if node1 == None and node2 == None: return True
if node1 == None or node2 == None: return False
if node1.val != node2.val: return False
return self.check(node1.left, node2.right) and self.check(node1.right,node2.left)
def isSymmetric(self, root):
if root == None: return True
return self.check(root.left, root.right)