【劍指offer】把二叉樹列印成多行
題目描述
從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:依然是層序遍歷。。# -*- 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 None queue = [pRoot] last = pRoot tmp, res = [], [] while queue: node = queue.pop(0) tmp.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) if node == last: res.extend(tmp) tmp = [] if queue: last = queue[-1] return res
相關推薦
【劍指offer】把二叉樹列印成多行
題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:依然是層序遍歷。。# -*- coding:utf-8 -*- # class TreeNode: # def __
劍指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:把二叉樹列印成多行(python)
題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:1、把每層節點的val值用list存好2、把每層節點存好:①計算當層節點的個數,這樣就保證下一步每層的結點都被pop光②然後依次彈出從左到右的每個節點,然後在list中加入該節點對應的左結點、右節點
《劍指offer》把二叉樹列印成多行
【 宣告:版權所有,轉載請標明出處,請勿用於商業用途。 聯絡信箱:[email protected]】 題目描述從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 思
python劍指offer系列把二叉樹列印成多行
題目:從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。思路:按層遍歷,遍歷完每層後更新solution:# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): #
《劍指offer》——把二叉樹列印成多行
T: 題目描述 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。 解法都在程式碼註釋當中了。 我的code: import java.util.ArrayList; import java.util.
【劍指Offer】19二叉樹的映象
題目描述 操作給定的二叉樹,將其變換為源二叉樹的映象。 時間限制:1秒;空間限制:32768K 輸入描述: 二叉樹的映象定義:源二叉樹 8 / \ 6 10 / \ / \ 5 7 9 11
【劍指offer】重建二叉樹 ★★★
題目描述: 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 解題思路: 知道整體思路是: 在二
【劍指offer】重建二叉樹(含測試函式)
根據前序遍歷和中序遍歷,利用遞迴的思想實現重建二叉樹,並輸出後序遍歷 程式碼如下: /** * Created by Administrator on 2018/11/28. */ class TreeNode{//建立類 int val; TreeNode left
【劍指Offer】- 重建二叉樹[Java版]
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹並返回。 /** * Created by
【劍指offer】判斷二叉樹是否為平衡二叉樹
平衡二叉樹(Balanced Binary Tree),具有以下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。 第一種遞迴思路,根據定義來,遞迴返回(r-l)<1 and balancetree(r) and bal
【劍指Offer】38二叉樹的深度
題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 時間限制:1秒;空間限制:32768K;本題知識點:樹 解題思路 遞迴求解 # -*- coding:utf-8 -*- # clas
【劍指offer】搜尋二叉樹與雙向連結串列
題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成一個排序的雙向連結串列。要求不能建立任何新的結點,只能調整樹中結點指標的指向。 class Solution { public: TreeNode* Convert(TreeNode* pRootOfTree) {
【劍指offer】平衡二叉樹
題目:輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 class Solution { public: bool IsBalanced_Solution(TreeNode* pRoot) { if (pRoot == NULL) return true; ret
劍指offer系列——按之字形順序列印二叉樹,把二叉樹列印成多行,序列化二叉樹
按之字形順序列印二叉樹 題目描述 請實現一個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。 解題思路: 法一: 需要兩個棧。我們在列印某一行節點時,把下一層的子節點儲存到相應的棧裡。 如果
劍指offer-------把二叉樹列印成多行
題目: 思路: 程式碼: struct TreeNode { int val; TreeNode *left; TreeNode *right; } void Print(BinaryTreeNOde* pRoot) { if(pRoot == NUL