码迷,mamicode.com
首页 > 其他好文 > 详细

101. Symmetric Tree

时间:2019-02-05 23:54:45      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:error   set   range   策略   limit   思路   image   难度   .com   

题目来源:

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

 

写题时间时长

101. Symmetric Tree

标签:error   set   range   策略   limit   思路   image   难度   .com   

原文地址:https://www.cnblogs.com/captain-dl/p/10353246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!