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

yipeiwu_com6年前Python基础

题目描述

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

思路:

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

相关文章

在Django下创建项目以及设置settings.py教程

在Django下创建项目以及设置settings.py教程

进入虚拟环境创建目录(在虚拟环境下不要使用sudo命令) 1.在虚拟环境下安装需要的安装包(注意,不要用sudo命令,否则会安装到真实环境下) pip3 install Django==...

浅谈python中的正则表达式(re模块)

一、简介 正则表达式本身是一种小型的、高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配。正则表达式模式被编译成一系列的字节码,然后由用C...

python中从for循环延申到推导式的具体使用

本文采用循序渐进的写法,逐步递进. 传统for循环: #获取1到1000000的偶数 #采用传统写法(俗称普通解析) for i in range(1,10**6+1): if(i...

pycharm 使用心得(三)Hello world!

pycharm 使用心得(三)Hello world!

1,新建一个项目 File --> New Project... 2,新建一个文件右键单击刚建好的helloWord项目,选择New --> Python File 3,...

Python中base64与xml取值结合问题

Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要...