1. 程式人生 > >23從上往下列印二叉樹python

23從上往下列印二叉樹python

題目:從上往下打印出二叉樹的每個節點,同層節點從左至右列印。
這裡寫圖片描述
思路:用一個臨時陣列儲存需要列印的節點,如列印8時,將6和10存入臨時陣列

class Solution:
    # 返回從上到下每個節點值列表,例:[1,2,3]
    def PrintFromTopToBottom(self, root):
        # 設定答案集合ans 臨時陣列temp,使用temp儲存需要列印的節點
        if not root:
            return []
        ans = []
        temp = []
        temp.append(root)

        while
temp: currentRoot = temp.pop(0) #獲當前取需要列印的節點 ans.append(currentRoot.val) if currentRoot.left: #將左右子節點存入temp等待列印 temp.append(currentRoot.left) if currentRoot.right: temp.append(currentRoot.right) return ans

相關推薦

23列印python

題目:從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路:用一個臨時陣列儲存需要列印的節點,如列印8時,將6和10存入臨時陣列 class Solution: # 返回從上到下每個節點值列表,例:[1,2,3] def Pr

劍指offer 23. 列印

原題 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 Reference Answer 解題思路: 思路:用一個臨時陣列儲存需要列印的節點,如列印8時,將6和10存入臨時陣列 # -*- coding:utf-8 -*- # class TreeNode: #

[劍指offer] --23.列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; TreeNo

劍指offer面試題23 列印

解題思路: 考察層次遍歷二叉樹,可以利用一個佇列來實現。當一個節點從佇列頭部移除時,若其存在左子節點,則左子節點入佇列;若存在右子節點,則右子節點入佇列,如此迴圈下去,直到佇列為空,證明佇列中的所有元

[劍指offer][面試題23]列印

從上往下打印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。 #include <iostream> #include <stack> using namespace std; struct Node{ int m_nData;

劍指Offer之面試題23:列印

所有程式碼均通過G++編譯器測試,僅為練手紀錄。 //面試題23:從上往下列印二叉樹 //題目:從上往下打印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印。 //面試題23:從上往下列印二

劍指offer 23 列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路: 二叉樹的層次遍歷,用佇列儲存即可。 # -*- coding:utf-8 -*- # class TreeNode:

劍指offer{面試題23列印}

簡單的二叉樹層序遍歷,利用佇列的先進先出結構 關於層序遍歷層序遍歷 貼程式碼 public class Test23 { /** * 二叉樹的樹結點 */ public static class BinaryTreeNode { int

劍指offer(23)——列印

題目 從上往下打印出二叉樹的每個結點,同一層的結點按照從左到右的順序列印 分析 從上到下列印,即就是按層遍歷這棵二叉樹,然後將其節點上的值打印出來。如果該樹只有一個根結點,那麼就直接列印該節點就好,這是一種最極端的情況,可是我們常常遇到的並不是這樣的情況,即就是列印完一個結

《劍指offer》(面試題23):列印

前言: 當一眼看不出問題中隱藏的規律時,我們可以試著用一兩個具體的例子模擬操作的過程,說不定這樣那就能通過具體的例子找到抽象的規律。 題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 解題思路 再熟悉不過的層序遍歷,BFS即可實現。用佇列來進行層序

列印 java

從上往下列印二叉樹 java 題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路: 按照層次遍歷的方法,使用佇列輔助。 1.將根結點加入佇列。 2.迴圈出隊,列印當前元素,若該結點有左子樹,則將其加入佇列,若有右子樹,將其加入佇列。 3.直到佇列為空,表明已經

【劍指Offer】22列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 時間限制:1秒;空間限制:32768K 解題思路 思路和層次遍歷相似,定義兩個list一個用來記錄當前層的節點,一個用來記錄當前每個節點的左右孩子節點,迴圈列印更新。 Python程式碼: # -*- codi

劍指offer(九) 棧的壓入彈出序列,列印搜尋的後序遍歷序列

棧的壓入、彈出序列 題目描述 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出

列印 (層序遍歷)JS演算法

   從上往下打印出二叉樹的每個節點,同層節點從左至右列印  //給定節點結構 /* function TreeNode(x) {     this.val = x;     this.left = nul

《劍指offer》系列 列印(Java)

連結 牛客:從上往下列印二叉樹 題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路 題目給定函式返回的只是一個ArrayList,還是比較簡單的,這種型別題目基本都要藉助一個輔助的佇列,看程式碼大家應該都能理解。 程式碼 import ja

劍指offer——(13)列印

遵從先上後下,先左後右的原則,用if——else遞迴即可。  import java.util.ArrayList; /** public class TreeNode { int val = 0; TreeNode left = null; Tree

劍指offer學習筆記(Python)--列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路 這是一個二叉樹的廣度優先遍歷的問題,可以用佇列來實現。建立兩個陣列,一個用來存放佇列,一個用來存放要列印的結點的值 實現 更多方法:https://www.nowcoder.com/ques

劍指Offer-32 列印

題目: 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 解答: # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # s

劍指offer-22:列印

題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右列印。 思路 二叉樹的層序遍歷,藉助一個佇列實現。 程式碼 public class Solution22 { public ArrayList<Integer> PrintFromTopToB

劍指offer------列印

題目: 思路: 程式碼: struct TreeNode { int val; TreeNode *left; TreeNode *right; } class Solution{ public: void DeepFirstPrint(TreeNod