104.二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
思路:遍歷樹的每個分支的深度。如果當前分支深度大於定義的最大深度,則將當前分支的最大值賦給定義的最大值
var
maxdepth
=function
(root)
if(root.right)
if(i>maxdep) maxdep=i;
}dfs
(root,1)
;return maxdep;
};
111.二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點
思路:遍歷樹的每一條路徑,將樹的第一條路徑的長度給最小值,如果其餘的路徑的長度小於這個最小值,則將更小的賦給這個最小值。
var
mindepth
=function
(root)
if(mindep>i)}if
(root.left)
if(root.right)
}dfs
(root,1)
;return mindep;
};
108.將有序陣列轉換為二叉搜尋樹
將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。
本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。
思路:首先判斷陣列是否為空,如果為空則輸出null,不為空,通過折半查詢根節點和左右子樹上的節點
var
sortedarraytobst
=function
(nums)
;
刷題(leetcode陣列相關)
1.兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路一.遍歷陣列中的每個數,與它後面每個數相加的結果是否等於target var t...
leetcode刷題之樹
樹的三種遍歷方式 的 非遞迴版本 中序遍歷 下面的解法就是相當於 第一趟先把元素按照中序的順序進棧 第二趟 是相當於把 null標記過的位置給拿出來 class solution else return res 先序遍歷 class solution else return res 公共父節點 pu...
leetcode刷題指北(2)
9.回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 思路一 第一反應轉為字串,遍歷字串首尾是否相等。class solution return true 也可以使用字串反轉比較 class solution el...