剑指offer_二叉树_按之字形顺序打印二叉树

按之字形顺序打印二叉树

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

参考答案

# -*- 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
        resultarray = []
        if not pRoot:
            return resultarray
        currnodes = [pRoot]
        flag = True
        while currnodes:
            currvalues = []
            nextnodes = []
            for node in currnodes:
                currvalues.append(node.val)
                if node.left:
                    nextnodes.append(node.left)
                if node.right:
                    nextnodes.append(node.right)
            currnodes = nextnodes
            resultarray.append(currvalues) if flag else resultarray.append(currvalues[::-1])
            flag = not flag
        return resultarray 
发布了31 篇原创文章 · 获赞 0 · 访问量 713

猜你喜欢

转载自blog.csdn.net/freedomUSTB/article/details/105180342
今日推荐