save all the nodes including None in a 2-dimension list and judge the symmetry
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
ans=[]
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if root==None:return True
self.ans=[]
self.dfs(root,1)
Len=len(self.ans)
for i in range(1,Len):
curLen=len(self.ans[i])
if curLen&1:return False
for j in range(curLen/2):
if self.ans[i][j]!=self.ans[i][curLen-j-1]:return False
return True
def dfs(self,root,deep):
if root==None:
if len(self.ans)<deep:
self.ans.append([-1])
else:
self.ans[deep-1].append(-1)
return
if len(self.ans)<deep:
self.ans.append([root.val])
else:
self.ans[deep-1].append(root.val)
self.dfs(root.left,deep+1)
self.dfs(root.right,deep+1)

被折叠的 条评论
为什么被折叠?



