1. 程式人生 > >python劍指offer系列把二叉樹列印成多行

python劍指offer系列把二叉樹列印成多行

題目:

從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。

思路:

按層遍歷,遍歷完每層後更新

solution:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def Print(self, pRoot):
        if not pRoot:
            return []
        nodeStack = [pRoot]
        result = []
        while nodeStack:
            res = []
            nextStack = []
            for i in nodeStack:
                res.append(i.val)
                if i.left:
                    nextStack.append(i.left)
                if i.right:
                    nextStack.append(i.right)
            nodeStack = nextStack
            result.append(res)
        return result
        
                
            
            
        # write code here

相關推薦

pythonoffer系列列印

題目:從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:按層遍歷,遍歷完每層後更新solution:# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): #

offer列印python

題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:1、把每層節點的val值用list存好2、把每層節點存好:①計算當層節點的個數,這樣就保證下一步每層的結點都被pop光②然後依次彈出從左到右的每個節點,然後在list中加入該節點對應的左結點、右節點

Offer 60. 列印

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 題目地址 https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288?tpId=13&tqId=11213&rp=3&ru=/ta/co

offer 60. 列印

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思路: 兩個棧,分二級,第一級存一行的數curStack,第二級存著一行數所對應的left,right的值nextStack,每次結束 一輪迴圈,把curStack的值給result,然後再將nodes設

offer列印

時間限制:1秒 空間限制:32768K 熱度指數:101798 題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思路 import java.util.ArrayList; /* public class TreeNode { int

Offer-Java-列印

題目 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 程式碼 此處只需要一個佇列進行層序遍歷即可。 import java.util.*; /* public class Tre

Offer-60-列印

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /* public class

offer列印

題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:依然是層序遍歷。。# -*- coding:utf-8 -*- # class TreeNode: # def __

offer列印

【 宣告:版權所有,轉載請標明出處,請勿用於商業用途。  聯絡信箱:[email protected]】 題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思

offer》——列印

T: 題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 解法都在程式碼註釋當中了。 我的code: import java.util.ArrayList; import java.util.

offer系列——按之字形順序列印列印,序列化二

按之字形順序列印二叉樹 題目描述 請實現一個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。 解題思路: 法一: 需要兩個棧。我們在列印某一行節點時,把下一層的子節點儲存到相應的棧裡。 如果

offer-------列印

題目: 思路: 程式碼: struct TreeNode { int val; TreeNode *left; TreeNode *right; } void Print(BinaryTreeNOde* pRoot) { if(pRoot == NUL

offer -- 列印

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 AC程式碼 層次遍歷二叉樹用到的資料結構是佇列。 import java.util.ArrayList; import java.util.Queue; import java.util

牛客網offer-列印

題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。/* struct TreeNode { int val; struct TreeNode *left;

offer--面試題60:列印

題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 python實現: # -*- coding:utf-8 -*- # class TreeNode: #     de

資料結構-offer-列印

題目:從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。因為要按層列印,首先想到的是層次遍歷。在二叉樹的深度這道題中,首先應用到了層次遍歷。每一層的節點值存入一個小vector c,再把小vector c存到大vector vec中,列印vec。(題目沒有要求換

offer》:[60]列印

題目:從上到下安層列印二叉樹,同一層的結點按從左到右的順序列印,每一層列印一行。例如,圖(1)中二叉樹以及列印結果為: 這個題其實很簡單,我們只需要設定兩個變數就可以搞定。一個變量表示當前層中還沒有

Offer——列印層序遍歷)

對於二叉樹的最好的解決辦法就是遞迴。遍歷方法無外乎先序遍歷,中序遍歷,後序遍歷方法以及層序遍歷方法。這裡給大家安利一個關於樹的面試題的連結,博主walkinginthewind比較全面且詳細的介紹了二叉樹相關的面試題:對於層序遍歷,最好的方法就是用佇列記錄遍歷節點的值,按層列

offer-列印-php

題目 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 題解 利用佇列先進先出的特點就可以完成。 程式碼 <?php /*class TreeN

offer-----列印

import java.util.ArrayList; import java.util.Queue; import java.util.LinkedList; /* public class TreeNode {     int val = 0;     TreeNode left = null;