代码

import sysclass TreeNode:def __init__(self, x):self.val = xself.left = Noneself.right = Noneclass Solution:def preorderTraversal(self, root):""":type root: TreeNode:rtype: List[int]"""ret = []stack = [root]while stack:node = stack.pop()if node:ret.append(node.val)stack.append(node.right)stack.append(node.left)return retdef list_to_treenode(input_values):if not input_values:return Noneroot = TreeNode(int(input_values[0]))node_queue = [root]front = 0index = 1while index < len(input_values):node = node_queue[front]front += 1item = input_values[index]index += 1if item != "null":left_num = int(item)node.left = TreeNode(left_num)node_queue.append(node.left)if index >= len(input_values):breakitem = input_values[index]index += 1if item != "null":right_num = int(item)node.right = TreeNode(right_num)node_queue.append(node.right)return rootdef main():line = sys.stdin.readline().strip()values = list(map(str, line.split()))root = list_to_treenode(values)pret = Solution().preorderTraversal(root)print(pret)if __name__ == '__main__':main()

测试

# 输入
3 9 20 null null 15 73/ \9  20/  \15   7# 前序遍历
[3, 9, 20, 15, 7]

使用python建立简单的树机构相关推荐

  1. python建立简单的数据库_学会最简单的数据库|看完这7招就够了

    这是菜鸟学Python的第93篇原创文章 阅读本文大概需要4分钟 前面一篇讲了数据库的基本介绍,目前流行的三大数据库有MySQL和Mongodb(还有一个以后告诉你),除了之外还有最简单的适合小白入手 ...

  2. python建立简单的人事管理项目(一)

    先构建数据库环境,我用的软件是<Microsoft SQL Server Management Studio 18>安装请参考别的教程,也不好卸载了重装一遍,挺难装的. 以windows进 ...

  3. 使用python建立简单的单链表

    代码 import sysclass ListNode:def __init__(self, x):self.val = xself.next = None# 将列表转换成链表 def list_to ...

  4. python建立简单的以太网连接并实现数据交互

    打开pycharm,输入以下代码: from socket import * HOST = '127.0.0.1' PORT = 8234 BUFSIZ =1024 ADDR = (HOST, POR ...

  5. python树的实现_Python实现简单字典树的方法

    本文实例讲述了Python实现简单字典树的方法.分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串. ...

  6. python 实现字典树_Python实现简单字典树的方法

    本文实例讲述了Python实现简单字典树的方法.分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串. ...

  7. python123八边形绘制_使用python实现简单的画多边形。

    原博文 2017-08-27 13:21 − import turtleimport timeimport mathdef polygon(bob,n,r): jiaoDu = 360/n juLi= ...

  8. 怎样用python绘制简单的图形_用python 画几个简单图案

    原博文 2019-11-15 09:44 − 1 turtle turtle这个库真的很好玩,用很简单几行代码就能画出好看的图案,最近无聊翻了翻之前自己画的哈哈哈哈,分享几个代码 画一个类似五颜六色的 ...

  9. 理解神经网络,从简单的例子开始(2)使用python建立多层神经网络

    这篇文章将讲解如何使用python建立多层神经网络.在阅读这篇文章之前,建议先阅读上一篇文章:理解神经网络,从简单的例子开始.讲解的是单层的神经网络.如果你已经阅读了上一篇文章,你会发现这篇文章的代码 ...

最新文章

  1. mysql5.6与mysql5.5不同
  2. 前端学习(632):转义字符
  3. linux在线扩展文件系统空间ext2online
  4. uva11054 - Wine trading in Gergovia(等价转换,贪心法)
  5. 天的故事 V1.0.2
  6. 毕啸南专栏 | 对话今日头条副总裁马维英:有技术也要有价值观
  7. RHCE培训笔记——Samba
  8. java中的垃圾收集器_Java中的垃圾收集
  9. 使用docker环境编译驱动
  10. 编程吸金榜:你排第几?网友神回应了 !
  11. 计算机网络专业就业压力,网络工程专业就业形势研究
  12. 中国已消失的 9 所世界级大学
  13. ppt流程图按步骤链接_【PPT教程】在PowerPoint中5分钟制作一个流程图
  14. 指针真的是个小机灵--将字符串中的n个字符左移,串中的前n个字符移到最后
  15. 知乎上102个简短而深刻的回答:看完人生豁然开朗
  16. 操作系统——磁盘操作
  17. 如何解决 bin log 与 redo log 的一致性问题
  18. Redis怎么优雅删除key
  19. 白天写代码,晚上驯豹子,就是这么有趣~
  20. crc32校验的c语言实现

热门文章

  1. 什么是LinkedList?什么时候使用它呢?Java LinkedList结构、用法及源码解析
  2. Yolo:实时目标检测实战(下)
  3. [JAVA EE] JPA技术基础:完成数据列表的删除
  4. error: No resource identifier found for attribute 'showAsAction' in package 'com.ymeng.项目名字'
  5. CF533A Berland Miners
  6. python 字符串内容
  7. 如何禁止浏览器自动填充
  8. 本地运行github上的vue2.0仿饿了么webapp项目
  9. python学习-day2_课堂作业
  10. @Controller和@RestController的区别?