一天一算法:day01二叉树打印练习

来源:互联网 发布:九一三事件知乎 编辑:程序博客网 时间:2024/05/21 08:08

exercise:给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。----题目来源牛课网直通bat算法课程

思路与上一篇按层打印相同,last=nlast时,换一个新数组存储数据。上一篇(http://blog.csdn.net/zhangjieyi123/article/details/62052473)

# -*- coding:utf-8 -*- # class TreeNode:#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass TreePrinter:    def printTree(self, root):        # write code here        res = []        queue = []        if root == None:            return res        last = root        nlast = root        queue.append(root)        temp = []        while len(queue):            node = queue.pop(0)            temp.append(node.val)                            if node.left != None:                queue.append(node.left)                nlast = node.left            if node.right != None:                queue.append(node.right)                nlast = node.right            if node == last:                res.append(temp[:])                temp = []                last = nlast        return res


0 0
原创粉丝点击