剑指offer序列化与反序列化,VSCode和平台结果不同

大佬们,剑指offer序列化与反序列化那道题我是这么做的:
class Solution:
def Serialize(self, root):
# write code here
if not root:
return ""
self.number = []
self.cur = []
self.number.append(root)
self.Se(root)
#print(self.cur)
return ",".join(self.cur)
def Se(self,root):
while(self.number):
if self.number[0] != "#" and self.number[0]:
self.cur.append(str(self.number[0].val))#AttributeError: 'NoneType' object has no attribute 'val',number[0]==None
if self.number[0].left:
self.number.append(self.number[0].left)
if self.number[0].right:
self.number.append(self.number[0].right)#没有判断语句,一直循环,self.number[None]
self.number.pop(0)

if len(self.number)>0 and self.number[0]=="#":
self.cur.append("#")#IndexError: list index out of range
self.number.pop(0)
#if not self.number[0]:

def Deserialize(self, s):
# write code here
if not s:
return
l = s.split(",")
root = TreeNode(None)
return(self.listCreatTree(root,l,0))
def listCreatTree(self, root,l,i):
if i < len(l):
val = l[i]
if val != "#":
root = TreeNode(val)
root.left = self.listCreatTree(root, l, 2*i+1)
root.right = self.listCreatTree(root, l, 2*i+2)
return root
if val == "#":
root = TreeNode(val)
return root
报错:{%d format: a number is required, not str是哪的问题啊,我在VSCode上跑没有问题的啊
求大佬告知(有答案,自己觉得思路这样走想多一种思路)
#Python#
全部评论
跟你一样,leetcode都没问题
点赞 回复 分享
发布于 2020-11-12 21:10
我跟你同样问题,这个好像是python版本问题
点赞 回复 分享
发布于 2019-08-16 14:35
在VSCode平台上全代码: class TreeNode:     def __init__(self, x):         self.val = x         self.left = None         self.right = None class Solution:         def Serialize(self, root):         # write code here         if not root:             return ""         self.number = []         self.cur = []         self.number.append(root)         self.Se(root)         #print(self.cur)         return ",".join(self.cur)     def Se(self,root):         while(self.number):             if self.number[0] != "#" and self.number[0]:                 self.cur.append(str(self.number[0].val))#AttributeError: 'NoneType' object has no attribute 'val',number[0]==None                 if self.number[0].left:                     self.number.append(self.number[0].left)                 if self.number[0].right:                     self.number.append(self.number[0].right)#没有判断语句,一直循环,self.number[None]                 self.number.pop(0)             if len(self.number)>0 and self.number[0]=="#":                 self.cur.append("#")#IndexError: list index out of range                 self.number.pop(0)             #if not self.number[0]:     def Deserialize(self, s):         # write code here         if not s:             return         l = s.split(",")         root = TreeNode(None)         return(self.listCreatTree(root,l,0))     def listCreatTree(self, root,l,i):         if i < len(l):             val = l[i]             if val != "#":                 root = TreeNode(val)                 root.left = self.listCreatTree(root, l, 2*i+1)                 root.right = self.listCreatTree(root, l, 2*i+2)                 return root             if val == "#":                 root = TreeNode(val)                 return root         '''     flag=-1     def Serialize(self, root):         # write code here         if not root:             return '#'         return str(root.val)+','+self.Serialize(root.left)+','+self.Serialize(root.right)             def Deserialize(self, s):         # write code here         #print(s)         self.flag+=1         lis=s.split(',')                 if self.flag>=len(lis):             return None                 root=None         #print("----------",self.flag,len(lis),len(s))         if lis[self.flag]!='#':             root=TreeNode(int(lis[self.flag]))             root.left=self.Deserialize(s)             root.right=self.Deserialize(s)         return root     '''     def midTraversal(self, root):         if root:             self.midTraversal(root.left)             print(root.val)             self.midTraversal(root.right) if __name__ == "__main__":     #b = [8,6,10,5,7,9,11]     #print()     #print(list(b))     #print(b.split(","))     a = Solution()     root = TreeNode(None)     root = a.Deserialize("8,6,10,5,7,9,11")     print("+++++")     a.midTraversal(root)     print("--------------------")     print(a.Serialize(root))    
点赞 回复 分享
发布于 2019-06-29 17:58

相关推荐

哈哈哈,你是老六:百度去年裁员分评不好,赶紧弄点红包
点赞 评论 收藏
分享
27届学院本誓死冲击...:自我评价和校园经历全删了,荣誉经历只留奖学金,项目也全得换都不如外卖
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4240次浏览 75人参与
# AI面会问哪些问题? #
27377次浏览 548人参与
# 米连集团26产品管培生项目 #
13272次浏览 285人参与
# 你的实习产出是真实的还是包装的? #
19973次浏览 342人参与
# 找AI工作可以去哪些公司? #
8832次浏览 228人参与
# 春招至今,你的战绩如何? #
64123次浏览 575人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14987次浏览 220人参与
# 从事AI岗需要掌握哪些技术栈? #
8712次浏览 296人参与
# 你做过最难的笔试是哪家公司 #
32827次浏览 226人参与
# 中国电信笔试 #
31679次浏览 286人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340665次浏览 2173人参与
# 阿里笔试 #
178255次浏览 1312人参与
# 第一份工作一定要去大厂吗 #
14330次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22013次浏览 280人参与
# 沪漂/北漂你觉得哪个更苦? #
9720次浏览 193人参与
# HR最不可信的一句话是__ #
6130次浏览 113人参与
# 应届生第一份工资要多少合适 #
20660次浏览 86人参与
# AI时代,哪个岗位还有“活路” #
11376次浏览 339人参与
# 春招你拿到offer了吗 #
830995次浏览 9986人参与
# 长得好看会提高面试通过率吗? #
22447次浏览 254人参与
# 聊聊你的职场新体验 #
336404次浏览 1894人参与
# 学历对求职的影响 #
665034次浏览 4249人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务