按之字形顺序打印二叉树(二叉树的层次遍历)

来源:互联网 发布:欢乐逛软件下载 编辑:程序博客网 时间:2024/05/18 01:13

题目描述

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


和把二叉树打印成多行(问题:链接)类似,都是对二叉树的层次遍历,只不过这个题要求正序逆序交叉输出

# -*- coding:utf-8 -*-# class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution:    def Print(self, pRoot):        # write code here        if not pRoot:        return []        flag = True        result = []        p = [pRoot]        while p:        res = []        node = []        for n in p:        if n.left:        node.append(n.left)        if n.right:        node.append(n.right)        res.append(n.val)        if flag == False:        result.append(res[::-1])        flag = True        else:        result.append(res)        flag = False        p = node        return result


0 0
原创粉丝点击