美文网首页
按之字形顺序打印二叉树

按之字形顺序打印二叉树

作者: Max_7 | 来源:发表于2019-03-06 11:46 被阅读0次

题目描述

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

思路

最初的思路是利用宽度优先搜索,对树进行层次遍历。然后根据遍历的层次来控制每次输出的方向。比如奇数(假设从1开始)正向输出,偶数反向输出。
后续做了一点改进,省去了逆向输出这个操作。在层次遍历的时候,先判断当前是应该正向还是反向输出的层。如果是反向输出,那么把当前层的当前节点每次都插入到当前队列的最前面。这样可以保证,当遍历完这一层时,存在数组里的节点已经是逆向的。

代码

class Solution:
    def Print(self, pRoot):
        if pRoot is None:
            return []
        result = []
        q = [pRoot]
        flag = 1  #控制输出方向
        while q:
            current_level = []
            temp_result = []
            for node in q:
                if flag == 1:
                    temp_result.append(node.val)
                if flag == -1:
                    temp_result.insert(0,node.val) #把后续节点插入到起始部位
                if node.left is not None:
                    current_level.append(node.left)
                if node.right is not None:
                    current_level.append(node.right)
            result.append(temp_result)
            q = current_level
            flag = flag * -1 #反向
        return result

相关文章

  • JZ-059-按之字形顺序打印二叉树

    按之字形顺序打印二叉树 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从...

  • 打印二叉树

    按之字形顺序打印二叉树 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺...

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

    按之字形顺序打印二叉树 请实现一个函数按照之字顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的...

  • 二叉树的遍历

    从上往下打印二叉树 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 按之字形顺序打印二叉树 请实现一个函数...

  • 剑指第三周

    对称的二叉树 其实就是要遍历嘛 按之字形顺序打印二叉树 同样是简单的层次遍历 把二叉树打印成多行 这个更简单了 栈...

  • 剑指offer编程题—按之字形打印二叉树

    题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按...

  • 面试题32 - III. 从上到下打印二叉树 III

    题目描述: 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,...

  • 面试题32-3.从上到下打印二叉树3_hn

    题目描述 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第...

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

    请实现一个函数按照之字形顺序从上向下打印二叉树。 即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第...

  • Java日记2018-06-04

    32.3 按之字形顺序打印二叉树上一题的扩展,使用辅助的队列 和栈来实现,注意一下注释里面顺序的坑 二叉搜索树的后...

网友评论

      本文标题:按之字形顺序打印二叉树

      本文链接:https://www.haomeiwen.com/subject/ibftpqtx.html