剑指offer、把二叉树打印成多行(python)
题目:
- 从上到下按层打印二叉树,同一层节点从左向右输出,每一层输出一行
代码(python):
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:# 返回二维列表[[1,2],[4,5]]def Print(self, pRoot):# write code here# 定义两个队列if pRoot == None: # 若二叉树为空,则返回空列表return []queue1 = [pRoot] # 定义队列1,把根结点赋值给他queue2 = [] # 定义队列2ret = [] # 最终的结果while queue1 or queue2: # 若两个队列其中一个不空,则一直循环:if queue1: # 若队列1存在tmpret = [] # 临时结果列表while queue1: # 遍历队列1的所以元素tmpNode = queue1[0] # 将头元素,赋值给tmpNodetmpret.append(tmpNode.val) # 添加到临时结果列表del queue1[0] # 删除头元素if tmpNode.left: # 若tmpNode存在左节点queue2.append(tmpNode.left) # 则将左节点赋值给队列2if tmpNode.right: # 若tmpNode存在右节点queue2.append(tmpNode.right) # 则将右节点赋值给队列2ret.append(tmpret) # 添加到结果列表if queue2: # 若队列2存在tmpret = [] # 临时结果列表while queue2: # 遍历队列2的所以元素tmpNode = queue2[0] # 将头元素,赋值给tmpNodetmpret.append(tmpNode.val) # 添加到临时结果列表del queue2[0] # 删除头元素if tmpNode.left: # 若tmpNode存在左节点queue1.append(tmpNode.left) # 则将左节点赋值给队列1if tmpNode.right: # 若tmpNode存在右节点queue1.append(tmpNode.right) # 则将右节点赋值给队列1ret.append(tmpret)return ret
剑指offer、把二叉树打印成多行(python)相关推荐
- 剑指offer:二叉树打印成多行(层次遍历)
1. 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 2. 思路 层次遍历 3. 递归 public class Solution {ArrayList<ArrayL ...
- 剑指offer——面试题60:把二叉树打印成多行
剑指offer--面试题60:把二叉树打印成多行 Solution1: 20180911重做.经典题目.牢记做法! /* struct TreeNode {int val;struct TreeNod ...
- 《剑指offer》-- 二叉树的下一个结点、对称二叉树、按之字性顺序打印二叉树、把二叉树打印成多行
一.二叉树的下一个结点: 1.题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 2.解题思路: 分析二叉树 ...
- 剑指offer编程试题Java实现--60.把二叉树打印成多行
个人博客:小景哥哥 60.把二叉树打印成多行 题目描述 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. import java.util.ArrayList; import java ...
- 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java
<LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...
- 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java
<LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...
- 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径
[LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...
- 【LeetCode】剑指 Offer 27. 二叉树的镜像
[LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- JZ27 [剑指 Offer 27] 二叉树的镜像
二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...
最新文章
- oracle恢复是怎么看进度,Oracle中查看慢查询进度的脚本分享
- java mysql 自动提交_Mybatis的JDBC提交设置/关闭mysql自动提交------关于mysql自动提交引发的惨剧...
- 昨日我是谁,今日谁是我
- 浅谈android hook技术
- VSCode生成.vue模版
- 使用JDBCTemplate实现与Spring结合,方法公用 ——共用实现类(BaseImpl)
- 特征工程之特征缩放特征编码
- AI CycleGAN
- split添加limit参数
- cms自动更新php文件,PHPCMS站群管理系统-PHPCMS自动采集-PHPCMS自动更新
- vscode+unity+Emmylua调试使用教程
- 微型计算机 路由,华硕RT-AC68U无线路由器深度体验
- 谈谈本人做广告联盟的经验
- AMR文件时长解析——附c代码
- PS2018 cc的下载和安装
- 电脑(伪)大神装B必备,来学几个windows脚本命令
- Android SurfaceView、TextureView区别
- cmpp 免提短信(闪信)
- SQLZOO练习题 (8)
- 把英文翻译成中文php,中文翻译成英文,英文翻译成中文(调用的有道翻译的api)示例源码...
热门文章
- 中证协 | 安青松:“金融+科技”是证券业高质量发展的战略引擎
- “超级买手”阿里:一年投资65笔,涉及金额高达5400亿
- Julia :PyPlot的plot_date
- 阿里云邀您参加 2020 年数据湖高峰会议
- 第十届中国开源黑客松等你来
- 【电力负荷预测】基于matlab日特征气象因素支持向量机SVM电力负荷预测【含Matlab源码 1612期】
- 【三维路径规划】基于matlab改进粒子滤波无人机三维路径规划【含Matlab源码 1269期】
- 【图像处理】基于matlab GUI图像直方图+滤波+小波变换+分割处理系统【含Matlab源码 608期】
- 思维导图ubuntu_Ubuntu——思维导图导安装和configuration area错误
- 机器学习时会发生什么