【剑指offer】之字形打印二叉树

原创 2018年04月16日 12:57:04

题目描述

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。


思路:层序遍历,维护一个flag即可

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def Print(self, pRoot):
        # write code here
        if not pRoot:
            return []
        queue = [pRoot]
        tmp,res = []
        last = pRoot
        left_to_right = True
        while queue:
            node = queue.pop(0)
            tmp.append(node.val)
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.right(node.right)
            if node == last:
                res.append(tmp if left_to_left else tmp[::-1])
                left_to_right = not left_to_right
                tmp = []
                if queue: last = queue[-1]
        return res

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111819/article/details/79954501

Python算法实战视频课程--二叉树

二叉树是重要的抽象数据类型,解决很多问题时都需要它。通过本课我们学习这种重要的数据结构,本课注重实践,没有过多枯燥的理论,我们的重点放在编码实现各种算法,这对于熟练使用Python语言也是很有益处的。
  • 2016年05月11日 09:14

剑指offer----之字形打印二叉树

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路: (1)如果每层都是从左到右一次打印这样只需...
  • snow_7
  • snow_7
  • 2016-07-19 10:22:43
  • 305

剑指offer——按之字形顺序打印二叉树

问题描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。思路:之字形打印其实与上一个按层次打印基本相同...
  • sbq63683210
  • sbq63683210
  • 2016-07-19 21:23:54
  • 929

剑指offer-面试题61:按之字形顺序打印二叉树

题目:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 上图按之字形打印的结果为: 1...
  • moses1213
  • moses1213
  • 2016-05-05 11:45:45
  • 365

剑指Offer——之字形打印二叉树

题目描述:实现一个函数按照之子形顺序打印二叉树。即第一行按照从左向右的顺序打印,第二层按照从右向左的顺序打印,第三行按照从左向右的顺序打印,其他以此类推。 例如:按之字形顺序打印...
  • xiaominkong123
  • xiaominkong123
  • 2016-05-25 14:44:39
  • 342

二叉树------之字形打印二叉树

题目描述: 实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析: 对于一个n层的二叉树,可以使用...
  • hy3686_1991
  • hy3686_1991
  • 2016-08-08 18:30:38
  • 358

按之字形顺序打印二叉树(java版)

【题目描述】请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。【解题思路1】 //1.使用两个栈来分别存...
  • ouyangyanlan
  • ouyangyanlan
  • 2017-06-06 15:08:44
  • 1284

按之字形顺序打印二叉树(剑指offer+队栈的应用)

按之字形顺序打印二叉树 参与人数:703时间限制:1秒空间限制:32768K通过比例:25.31%最佳记录:0 ms|8552K(  ) 题目描述 请实现一个函数按照之字...
  • u010579068
  • u010579068
  • 2015-11-05 14:31:02
  • 1979

剑指offer-----按之字形顺序打印二叉树(java版)

一 题目 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 二 例子 输入二叉树为:8...
  • sniperken
  • sniperken
  • 2016-12-26 21:02:36
  • 655

剑指offer(C++)——按之字形顺序打印二叉树

题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 /* 思路:打印第一...
  • YF_Li123
  • YF_Li123
  • 2017-04-18 20:57:11
  • 468
收藏助手
不良信息举报
您举报文章:【剑指offer】之字形打印二叉树
举报原因:
原因补充:

(最多只允许输入30个字)