zoukankan      html  css  js  c++  java
  • 60、把二叉树打印成多行

    从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

    ==》stack

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        # 返回二维列表[[1,2],[4,5]]
        def Print(self, pRoot):
            # write code here
            if not pRoot:
                return []
            res = []
            stack = [pRoot]
            while stack:
                tmp = []
                level = []
                for node in stack:
                    tmp.append(node.val)
                    if node.left:
                        level.append(node.left)
                    if node.right:
                        level.append(node.right)
                stack = level
                res.append(tmp)
            return res

    ==》queue

    # -*- coding:utf-8 -*-
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    class Solution:
        # 返回二维列表[[1,2],[4,5]]
        def Print(self, pRoot):
            # write code here
            if not pRoot:
                return []
            from collections import deque
            q = deque()
            q.append(pRoot)
            res = []
            while q:
                tmp = []
                nextLevel = deque()
                for node in q:
                    tmp.append(node.val)
                    if node.left:
                        nextLevel.append(node.left)
                    if node.right:
                        nextLevel.append(node.right)
                q = nextLevel
                res.append(tmp)
            return res
  • 相关阅读:
    Android作业10/21
    Android作业10/07
    Android作业0930
    Android作业 0923
    第四周作业
    第七周
    第六周
    第四周作业
    3.10第二次
    jsp第一次作业
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13541163.html
Copyright © 2011-2022 走看看