虽然看了很久的递归,还是会卡住,怎么设计是一个难点啊。最好是把递归的方法写在外面,写在里面太不好了,那就比较像装饰器了。
递归方法中语句要多,进行多次判断调用,给出的方法要少些,这样比较正规,易懂。
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isSymmetrical(self, pRoot):
# write code here
return self.similiar(pRoot,pRoot)
def similiar(self,node1,node2):
if not node1 and not node2:
return True
if not node1 or not node2:
return False
if node1.val!=node2.val:
return False
return self.similiar(node1.left,node2.right) and self.similiar(node2.left,node1.right)