关注
class TreeNode(object): def __init__(self,x): self.val = x self.left = None self.right = None class Solution(object): tree = None pre = [] post = [] end = [] def preorder(self,root): if not root: return self.pre.append(root.val) self.preorder(root.left) self.preorder(root.right) def postorder(self,root): if not root: return self.postorder(root.left) self.postorder(root.right) self.post.append(root.val) def endnode(self,root): if not root: return [] queue1 = [root] queue2 = [] while queue1: cur = queue1.pop(0) if not cur.left and not cur.right: self.end.append(cur.val) if cur.left: queue2.append(cur.left) if cur.right: queue2.append(cur.right) if queue1 == []: queue1 = queue2 queue2 = [] def build(self, sub_levelorder, sub_inorder): if sub_inorder == []: return None root_value = sub_levelorder[0] root = TreeNode(root_value) index = sub_inorder.index(root_value) left_sub_inorder = sub_inorder[:index] right_sub_inorder = sub_inorder[index + 1:] left_sub_levelorder,right_sub_levelorder = [],[] # 按照层次遍历,第一个出现的就是根节点,然后找到中序中根节点的位置,分成左右两个子树的中序。再根据这个中序的序列,找到左右子树层次遍历的序列 # 考试的时候这一步没做好,一直做不出来,看了@ningshixian的做法。 for each in sub_levelorder[1:]: if each in left_sub_inorder: left_sub_levelorder.append(each) else: right_sub_levelorder.append(each) root.left = self.build(left_sub_levelorder, left_sub_inorder) root.right = self.build(right_sub_levelorder, right_sub_inorder) return root def buildTree(self, levelorder, inorder): """ :type preorder: List[int] :type inorder: List[int] :rtype: TreeNode """ if levelorder == [] or inorder == []: return None self.tree = self.build(levelorder, inorder)
查看原帖
点赞 评论
相关推荐
12-23 19:23
东北大学 Java 我也不知道起什么名字...:拼多多18薪是有两个月的加班费,单休比双休一年多上大概两个月的班,所以就多了两个月的工资,这就是18薪的由来
点赞 评论 收藏
分享
点赞 评论 收藏
分享
12-12 01:48
中国地质大学(武汉) Java 程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客2025仙途报告 #
4288次浏览 126人参与
# 礼物开箱Plog #
1578次浏览 71人参与
# 2025年终总结 #
177263次浏览 2997人参与
# 工作两年,想和老板谈涨薪怎么说 #
38793次浏览 175人参与
# 你面试体验感最差/最好的公司 #
22166次浏览 363人参与
# 秋招落幕,你是He or Be #
15554次浏览 286人参与
# 一人说一个提前实习的好处 #
13988次浏览 227人参与
# 考公VS就业,你怎么选? #
88104次浏览 497人参与
# 今年你最想重开的一场面试是? #
5657次浏览 74人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
13696次浏览 130人参与
# 重来一次,你会对开始求职的自己说 #
6903次浏览 175人参与
# 找工作,行业重要还是岗位重要? #
85792次浏览 1699人参与
# 实习没事做是福还是祸? #
18762次浏览 272人参与
# 机械制造秋招总结 #
97358次浏览 878人参与
# 职场新人体验 #
156929次浏览 1121人参与
# 工作中听到最受打击的一句话 #
8239次浏览 130人参与
# 团建是“福利”还是是 “渡劫” #
8102次浏览 160人参与
# 反问环节如何提问 #
126456次浏览 2669人参与
# 移动求职进展汇总 #
17919次浏览 143人参与
# 比亚迪线下宣讲会 #
17182次浏览 50人参与

