• 剑指offer——python【第59题】按之子形顺序打印二叉树


    题目描述

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

    解题思路

    这道题其实是分层打印二叉树的进阶版,唯一的不同就是偶数层是列表倒序,奇数层是列表正序;只要在上道题目代码的基础上添加一个判断符,判断是奇数层还是偶数层

    代码

    class Solution:
        def Print(self, pRoot):
            # write code here
            result = []
            queue = []
            if pRoot == None:
                return result
            queue.append(pRoot)
            oddLevel = True
            while queue:
                result_layer = []
                nextLayernodeList = []
                oddLevel = not oddLevel
                for node in queue:
                    result_layer.append(node.val)
                    if node.left != None:
                        nextLayernodeList.append(node.left)
                    if node.right != None:
                        nextLayernodeList.append(node.right)
                queue = nextLayernodeList
                result.append(result_layer[::-1]) if oddLevel else result.append(result_layer)
            return result

    oddLevel就是奇数层判断符,一开始是True,后面依次是False、True、False

    人生苦短,何不用python
  • 相关阅读:
    oracle 分頁
    WF 工作流(6)
    NET多语言化实现
    PL/SQL 問題澄清(2)
    兩數組類型之間的區別(1)
    Linux Crontab 定时任务
    AJAX数据分页展示
    kohana文件上传
    笔记:JS异步文件上传
    json
  • 原文地址:https://www.cnblogs.com/yqpy/p/9751347.html
Copyright © 2020-2023  润新知