• leetcode1028


     1 class Solution(object):
     2     def __init__(self):
     3         self.List = list()
     4 
     5     def rdfs(self,S):
     6         if S != '':
     7             length = len(S)
     8             depth = len(self.List)
     9             tempval = ''
    10             tempdepth = 0
    11             for i in range(length):
    12                 s = S[i]
    13                 if s != '-':
    14                     tempval += s
    15                     if i == length - 1:
    16                         while depth != tempdepth:
    17                             self.List.pop(-1)
    18                             depth = len(self.List)
    19                         parent = self.List[-1]
    20                             
    21                         val = int(tempval)
    22                         t = TreeNode(val)
    23                         if parent.left == None:
    24                             parent.left = t
    25                         elif parent.right == None:
    26                             parent.right = t
    27                             
    28                 else:
    29                     if tempval != '':
    30                         while depth != tempdepth:
    31                             self.List.pop(-1)
    32                             depth = len(self.List)
    33                         parent = self.List[-1]
    34                             
    35                         val = int(tempval)
    36                         t = TreeNode(val)
    37                         if parent.left == None:
    38                             parent.left = t
    39                             self.List.append(t)
    40                             self.rdfs(S[i:])
    41                         elif parent.right == None:
    42                             parent.right = t
    43                             self.List.append(t)
    44                             self.rdfs(S[i:])
    45                         break
    46                     else:
    47                         tempdepth += 1
    48         else:
    49             return None
    50 
    51     def recoverFromPreorder(self, S: str) -> 'TreeNode':
    52         tempval = ''
    53         length = len(S)
    54         for i in range(length):
    55             s = S[i]
    56             if s != '-':#数字
    57                 tempval += s
    58                 if i == length - 1:
    59                     val = int(tempval)
    60                     root = TreeNode(val)
    61 
    62             else:#遇到横线,数字结束
    63                 val = int(tempval)
    64                 root = TreeNode(val)
    65                 self.List.append(root)
    66                 self.rdfs(S[i:])
    67                 self.List.pop(-1)
    68                 return root
    69         return root
  • 相关阅读:
    CentOS6.8下安装Docker
    xshell连接Linux(centos6.8)失败的解决方法
    Windows Server定时执行bat
    [译]看漫画学Flux
    LeetCode题型分类及索引
    LeetCode & Q38-Count and Say-Easy
    LeetCode & Q20-Valid Parentheses-Easy
    LeetCode & Q14-Longest Common Prefix-Easy
    LeetCode & Q13-Roman to Integer-Easy
    LeetCode & Q28-Implement strStr-Easy
  • 原文地址:https://www.cnblogs.com/asenyang/p/10706327.html
Copyright © 2020-2023  润新知