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
  • 相关阅读:
    kali 所有版本
    kali有关问题及kali2018.2安装
    python2
    burpsuite 破解教程
    python生成个性二维码
    万能密码
    python 1
    python
    python 第三方库安装
    Androidstdio 简单界面设计 登陆系统
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13541163.html
Copyright © 2011-2022 走看看