首页 > 其他 > 详细

101. Symmetric Tree

时间:2019-02-05 22:32:12      阅读:223      评论:0      收藏:0      [点我收藏+]
题目来源:

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!