原创 【劍指OFFER】面試題36. 二叉搜索樹與雙向鏈表

題目:輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的循環雙向鏈表。要求不能創建任何新的節點,只能調整樹中節點指針的指向。 爲了讓您更好地理解問題,以下面的二叉搜索樹爲例: 我們希望將這個二叉搜索樹轉化爲雙向循環鏈表。鏈表中的

原创 【力扣】138. 複製帶隨機指針的鏈表

題目:給定一個鏈表,每個節點包含一個額外增加的隨機指針,該指針可以指向鏈表中的任何節點或空節點。 要求返回這個鏈表的 深拷貝。 我們用一個由 n 個節點組成的鏈表來表示輸入/輸出中的鏈表。每個節點用一個 [val, random_

原创 【劍指OFFER】面試題35. 複雜鏈表的複製

題目:請實現 copyRandomList 函數,複製一個複雜鏈表。在複雜鏈表中,每個節點除了有一個 next 指針指向下一個節點,還有一個 random 指針指向鏈表中的任意節點或者 null。 示例 1: 輸入:head =

原创 【劍指OFFER】面試題39. 數組中出現次數超過一半的數字

題目:數組中有一個數字出現的次數超過數組長度的一半,請找出這個數字。 你可以假設數組是非空的,並且給定的數組總是存在多數元素。 示例 1: 輸入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 輸出: 2 限制: 1 <

原创 【力扣】113. 路徑總和 II

題目:輸入一棵二叉樹和一個整數,打印出二叉樹中節點值的和爲輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。 示例: 給定如下二叉樹,以及目標和 sum = 22, 5 / \

原创 【劍指OFFER】面試題34. 二叉樹中和爲某一值的路徑

題目:輸入一棵二叉樹和一個整數,打印出二叉樹中節點值的和爲輸入整數的所有路徑。從樹的根節點開始往下一直到葉節點所經過的節點形成一條路徑。 示例: 給定如下二叉樹,以及目標和 sum = 22, 5 / \

原创 【劍指OFFER】面試題33. 二叉搜索樹的後序遍歷序列

題目:輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷結果。如果是則返回 true,否則返回 false。假設輸入的數組的任意兩個數字都互不相同。 參考以下這顆二叉搜索樹: 5 / \ 2 6

原创 【力扣】102. 二叉樹的層序遍歷

題目:給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。 示例: 二叉樹:[3,9,20,null,null,15,7], 3 / \ 9 20 / \

原创 【劍指OFFER】面試題32 - II. 從上到下打印二叉樹 II

題目:從上到下按層打印二叉樹,同一層的節點按從左到右的順序打印,每一層打印到一行。 例如: 給定二叉樹: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15

原创 【力扣】200. 島嶼數量

題目:給你一個由 ‘1’(陸地)和 ‘0’(水)組成的的二維網格,請你計算網格中島嶼的數量。 島嶼總是被水包圍,並且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連接形成。 此外,你可以假設該網格的四條邊均被水包圍。 示例 1:

原创 【劍指OFFER】面試題32 - III. 從上到下打印二叉樹 III

題目:請實現一個函數按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,第三行再按照從左到右的順序打印,其他行以此類推。 例如: 給定二叉樹: [3,9,20,null,null,15,7],

原创 int[ ]、Integer[ ]、List、List相互轉化

一、int[ ] 轉成 Integer[ ], List< Intege r>, List< String > (1)int[ ] 轉成 Integer[ ] Integer[] integers = Arrays.stre

原创 【劍指OFFER】面試題30. 包含min函數的棧

題目:定義棧的數據結構,請在該類型中實現一個能夠得到棧的最小元素的 min 函數在該棧中,調用 min、push 及 pop 的時間複雜度都是 O(1)。 示例: MinStack minStack = new MinStack

原创 【劍指OFFER】面試題28. 對稱的二叉樹

題目:請實現一個函數,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的鏡像一樣,那麼它是對稱的。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4

原创 【劍指OFFER】面試題26. 樹的子結構

題目:輸入兩棵二叉樹A和B,判斷B是不是A的子結構。(約定空樹不是任意一個樹的子結構) B是A的子結構, 即 A中有出現和B相同的結構和節點值。 例如: 給定的樹 A: 3 / \ 4 5 / \