10min,找不到错误的时候还是得样例运行一下。
基本思路就是,比较两个子树是否对称,子树对称的标准是
1.root1.val==root2.val
2.root1.left==root2.right, root1.right==root2.left
另外的思路是利用stack,不断加成对的节点加入stack,然后进行比较
class Solution:
def isSymmetrical(self, pRoot):
if not pRoot:return True #这里又忘了加not
return self.dfs(pRoot.left,pRoot.right)
def dfs(self,pRoot1,pRoot2):
if not pRoot1 and not pRoot2:return True
if not pRoot1 or not pRoot2:return False
if pRoot1.val==pRoot2.val:
return self.dfs(pRoot1.left,pRoot2.right) and self.dfs(pRoot1.right,pRoot2.left)
else:return False
网友评论