101. Symmetric Tree

题目来源:

101. Symmetric Tree

 
自我感觉难度/真实难度:easy
题意:
 
分析:
 
自己的代码:
class Solution:
    def isSymmetric(self, root: 'TreeNode') -> 'bool':
        res=[]
        self.dsf(root,res)
        return self.check(res)  
        
    def dsf(self,root,res):
        
        if not root:
            return 
        res.append(root.val)
        res.append(self.dsf(root.left,res))
        res.append(self.dsf(root.right,res))
        return res
    
    def check(self,list1):
        n=len(list1)
        i=1
        res=set([])
        while i<n:
            lenght=2**i
            res.add(self.check_sym(list1,lenght))
            i=(2**i)-1
        if len(res)>1:
            return False
        return True
         
    def check_sym(self,lis,n):
        for i in range(int(n/2)):
            if lis[i]!=lis[n-i]:
                return False
        return True
    

第一次超时的代码,思维不简洁

代码效率/结果:
 
Time Limit Exceeded
优秀代码:

代码效率/结果:
 
自己优化后的代码:
 
反思改进策略:

1.解题思路不对,太简单了。没有想到最根本的那个解决思路。    递归也可以在两层树之间进行

写题时间时长
原文地址:https://www.cnblogs.com/captain-dl/p/10353246.html