摘要:題目從上到下按層打印二叉樹,同一層結點從左至右輸出。分析分層次遍歷肯定要使用隊列來完成了,沒啥好分析的代碼實現
題目
從上到下按層打印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
分析分層次遍歷肯定要使用隊列來完成了,沒啥好分析的
代碼實現/* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function Print(r) { if(r === null) return []; var q = []; var index = 0; var res = []; res.push([]) q.push(r); q.push(null); while(q.length !== 0){ var cur = q.shift(); if(cur !== null){ res[index].push(cur.val); if(cur.left !== null) q.push(cur.left); if(cur.right !== null) q.push(cur.right); }else{ if(q.length !== 0){ res.push([]); index++; q.push(null); } } } return res; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96183.html
摘要:題目描述操作給定的二叉樹,將其變翻轉為源二叉樹的鏡像。輸入描述解題思路遞歸版本首先,對數據結構比較了解的話會想到用遞歸來解決。所謂遞歸,在計算機科學中是指一種通過重復將問題分解為同類的子問題而解決問題的方法來自維基百科。 題目描述 操作給定的二叉樹,將其變翻轉為源二叉樹的鏡像。 輸入描述: 1 1 / ...
摘要:題目描述從上往下打印出二叉樹的每個節點,同層節點從左至右打印。分析二叉樹的層次遍歷,可以借助隊列的幫助實現 題目描述 從上往下打印出二叉樹的每個節點,同層節點從左至右打印。 分析 二叉樹的層次遍歷,可以借助隊列的幫助 實現 /* function TreeNode(x) { this.val = x; this.left = null; this.right =...
摘要:題目描述請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以此類推分析第一反應可以按照普通的層次遍歷然后再把第等等偶數層的結果翻轉一下,但是那樣子效率太低。 題目描述 請實現一個函數按照之字形打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右至左的順序打印,第三行按照從左到右的順序打印,其他行以...
題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。 分析 前序遍歷是中左右的順序,中序遍歷是左中右的順序,那么對于{1,2,4,7,3,5,6,8}和{4,7,2,1,5,3,8,6}來說,1是根節點,然...
閱讀 2513·2023-04-25 17:27
閱讀 1824·2019-08-30 15:54
閱讀 2369·2019-08-30 13:06
閱讀 2980·2019-08-30 11:04
閱讀 746·2019-08-29 15:30
閱讀 729·2019-08-29 15:16
閱讀 1733·2019-08-26 10:10
閱讀 3603·2019-08-23 17:02