明星程序员被Google挂掉的故事
Homebrew可能是Mac上最好用的包管理器, 地位相当于Ubuntu的apt, 也相当于命令行版的AppStore
哈哈,挖坑不填不是我的风格,python版解题源码奉上!
代码语言:javascript
代码运行次数:
0
运行
复制
class Node(object): def __init__(self, value = None): self.value = value self.left = None self.right = None class Tree(object): def __init__(self): self.root = Node() self.queue = [] pass def add(self, value): # 创建一个节点 tmp_node = Node(value) # 如果根节点为空, 则添加根节点 if len(self.queue) == 0: self.root = tmp_node self.queue.append(tmp_node) # 如果根节点不为空 else: # 获取当前子树未满的节点(当前临时父节点) nowRoot = self.queue[0] # 如果临时父节点左子树为空 if nowRoot.left == None: nowRoot.left = tmp_node self.queue.append(tmp_node) # 如果临时父节点右子树为空 else: nowRoot.right = tmp_node self.queue.append(tmp_node) # 从队列清除父节点(这个父节点现在已经满了) self.queue.pop(0) # 中序遍历 def recursion_lvr(self, root): # 如果节点为空, 则返回 if not root: return self.recursion_lvr(root.left) print(root.value) self.recursion_lvr(root.right) # 反转二叉树(HomeBrew的作者被坑的题目) def reverse_tree(self, root): if not root: return # 获取当前左右子树的根节点 tmp_left_node = root.left tmp_right_node = root.right # 反转二叉树的左右子树 root.left = tmp_right_node root.right = tmp_left_node # 将左右子树加入新的序列 self.reverse_tree(root.left) self.reverse_tree(root.right) def main(): tree = Tree() for i in range(1,8): tree.add(i) tree.recursion_lvr(tree.root); tree.reverse_tree(tree.root) print("反转之后的结果:") tree.recursion_lvr(tree.root); if __name__ == '__main__': main()
综上所述, 算法的确很重要......
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.16 ,
如有侵权请联系 [email protected] 删除
推荐阅读
目录
网址:明星程序员被Google挂掉的故事 https://m.mxgxt.com/news/view/1812587
相关内容
明星程序员被Google挂掉的故事格局炸裂,程序员必看的十部纪录片欢迎来到程序员的世界,分享一些关于程序员的纪录片,绝对会颠覆你对程序员的认知,也绝对会让
成为高效程序员的搜索技巧
Google+人事大地震 明星主管离职
智能分析工具PK:Tableau VS Google Data Studio
对九个超级程序员的采访
程序员 != 这些标签
余文乐程序员结婚了吗:揭秘明星程序员的婚姻状况
交通事故伤残关联度(伤病关联性鉴定程序)
程序员如何用“撞针”拯救 35 亿地球人?