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

    写题时间时长
  • 相关阅读:
    [日常训练]FJ省夏令营day1
    [vijos1002][NOIP2005]过河
    [poj2446]Chessboard
    [bzoj1854][SCOI2010]游戏
    [模板]匈牙利算法
    [bzoj3670][2014湖北省队互测week2]似乎在梦中见过的样子
    笔记3-27
    笔记3-26
    笔记3-25
    Codeforces891C. Envy
  • 原文地址:https://www.cnblogs.com/captain-dl/p/10353246.html
Copyright © 2011-2022 走看看