摘要:題目描述輸入一棵二叉樹,求該樹的深度。遞歸解法非遞歸解法原來標識當前層是否遍歷完畢當前彈出元素為時,說明一層以及遍歷完畢了,所以最后一層的彈出時不能再往隊列里面加了
題目描述
輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
遞歸解法function TreeNode(x) { this.val = x; this.left = null; this.right = null; } function Depth(r) { if(r === null) return 0; return Math.max(Depth(r.left), Depth(r.right))+1; }非遞歸解法
function TreeDepth(r) { if(r === null) return 0; var q = []; var depth = 0; q.push(r); // null原來標識當前層是否遍歷完畢 q.push(null); while(q.length !== 0){ var cur = q.shift(); // 當前彈出元素為null時,說明一層以及遍歷完畢了,所以depth+1 if(cur === null){ depth++; if(q.length!==0) // 最后一層的null彈出時不能再往隊列里面加null了 q.push(null); } else{ if(cur.left !== null) q.push(cur.left); if(cur.right !== null) q.push(cur.right); } } return depth; }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95634.html
摘要:寫在最前面導師貪腐出逃美國,兩年未歸,可憐了我。拿了小米和美團的,要被延期,失效,工作重新找。把準備過程紀錄下來,共勉。 寫在最前面 導師貪腐出逃美國,兩年未歸,可憐了我。拿了小米和美團的offer,要被延期,offer失效,工作重新找。把準備過程紀錄下來,共勉。 二叉樹的基礎 結點定義 public class TreeNode{ int val; TreeNode ...
摘要:題目描述操作給定的二叉樹,將其變翻轉為源二叉樹的鏡像。輸入描述解題思路遞歸版本首先,對數據結構比較了解的話會想到用遞歸來解決。所謂遞歸,在計算機科學中是指一種通過重復將問題分解為同類的子問題而解決問題的方法來自維基百科。 題目描述 操作給定的二叉樹,將其變翻轉為源二叉樹的鏡像。 輸入描述: 1 1 / ...
摘要:后面也寫了幾種常見的排序算法,并用快排求第大值,另外如果之前版的作者看到的話可以留言,我會標明文章引用。 之前實習筆試的時候刷題一直用的java,也參考某篇文章寫過java版的二叉樹常見算法,因為馬上要轉正面試了,這幾天都在準備面試,就把之前的翻出來用javascript重新寫了一遍,二叉樹基本都是遞歸處理的,也比較簡單,就當做熱身。后面也寫了幾種常見的排序算法,并用快排求第K大值,另...
閱讀 2132·2023-04-26 03:06
閱讀 3580·2023-04-26 01:51
閱讀 2086·2021-11-24 09:38
閱讀 2452·2021-11-17 17:00
閱讀 2324·2021-09-28 09:36
閱讀 941·2021-09-24 09:47
閱讀 2587·2019-08-30 15:54
閱讀 1554·2019-08-30 15:44