Python编程把二叉树打印成多行代码


Posted in Python onJanuary 04, 2018

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

思路:

1、把每层节点的val值用list存好

2、把每层节点存好:

①计算当层节点的个数,这样就保证下一步每层的结点都被pop光

②然后依次弹出从左到右的每个节点,然后在list中加入该节点对应的左结点、右节点(如果存在的话)

代码如下:

class TreeNode(): 
  def __init__(self,x): 
    self.val = x 
    self.left = None 
    self.right = None 
def function(root): 
  result = [] 
  if not root: 
    return result 
  A = [] 
  A.append(root) 
  while A: 
    temp = [] 
    size = len(A) 
    for Node in A: 
      temp.append(Node.val) 
    result.append(temp) 
    for i in range(size): 
      node = A.pop(0) 
      if node.left: 
        A.append(node.left) 
      if node.right: 
        A.append(node.right) 
  return result

总结

以上就是本文关于Python编程把二叉树打印成多行代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python算法学习之基数排序实例
Dec 18 Python
python实现简单的socket server实例
Apr 29 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Python装饰器的执行过程实例分析
Jun 04 Python
详解python3中zipfile模块用法
Jun 18 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
Python定时发送天气预报邮件代码实例
Sep 09 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
Python基础数据类型tuple元组的概念与用法
Aug 02 Python
Python中可变和不可变对象的深入讲解
Aug 02 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 #Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 #Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 #Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 #Python
python实现简易云音乐播放器
Jan 04 #Python
Python语言描述连续子数组的最大和
Jan 04 #Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 #Python
You might like
PHP Curl多线程原理实例详解
2013/11/06 PHP
php简单实现发送带附件的邮件
2015/06/10 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
python创建线程示例
2014/05/06 Python
python正则表达式的使用
2017/06/12 Python
python实现电脑自动关机
2018/06/20 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
python 实现二维列表转置
2019/12/02 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
Django密码存储策略分析
2020/01/09 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
python的setattr函数实例用法
2020/12/16 Python
Java语言程序设计测试题改错题部分
2014/07/22 面试题
电子商务个人自荐信
2013/12/12 职场文书
活动志愿者自荐信
2014/01/27 职场文书
2014年党支部工作总结
2014/11/13 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL