刷題 樹相關leetcode2

2021-09-16 22:18:54 字數 1213 閱讀 7456

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...