原创 leetCode 83&82. 刪除排序鏈表中的重複元素

81. 刪除排序鏈表中的重複元素 題目描述: 給定一個排序鏈表,刪除所有重複的元素,使得每個元素只出現一次。 示例 1: 輸入: 1->1->2 輸出: 1->2 示例 2: 輸入: 1->1->2->3->3 輸出: 1->2->

原创 leetCode 19. 刪除鏈表的倒數第N個節點

題目描述: 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5. 說明: 給定的 n 

原创 LeetCode 42. 接雨水

題目描述: 給定 n 個非負整數表示每個寬度爲 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。 上面是由數組 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度圖,在這種情況下,可以接 6 個單位的雨水(藍色

原创 LeetCode 15. 三數之和

題目描述:給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。注意:答案中不可以包含重複的三元組。例如, 給定數組 nums =

原创 LeetCode 33. 搜索旋轉排序數組

題目描述: 假設按照升序排序的數組在預先未知的某個點上進行了旋轉。 ( 例如,數組 [0,1,2,4,5,6,7] 可能變爲 [4,5,6,7,0,1,2] )。 搜索一個給定的目標值,如果數組中存在這個目標值,則返回它的索引,否則返回 

原创 LeetCode 21. 合併兩個有序鏈表

將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。  示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 思路:和歸併排序一樣 代碼: /** * Def

原创 LeetCode 20. 有效的括號

給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需滿足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例 1: 輸入:

原创 LeetCode 142. 環形鏈表 II

題目描述: 給定一個鏈表,返回鏈表開始入環的第一個節點。 如果鏈表無環,則返回 null。 說明:不允許修改給定的鏈表。   思路:使用快和慢兩個指針,如果說最後在快指針沒有走出環之前二者相遇了,則說明,肯定有環,並且此時的慢指針和快指針

原创 LeetCode 685. 冗餘連接 II

題目描述:   在本問題中,有根樹指滿足以下條件的有向圖。該樹只有一個根節點,所有其他節點都是該根節點的後繼。每一個節點只有一個父節點,除了根節點沒有父節點。 輸入一個有向圖,該圖由一個有着N個節點 (節點值不重複1, 2, ..., N

原创 LeetCode top interviewed 7. 反轉整數

題目描述: 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 注意: 假設我們的環境

原创 LeetCode 39. 組合總和

題目描述: 給定一個無重複元素的數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和爲 target 的組合。 candidates 中的數字可以無限制重複被選取。 說明: 所有數字(包

原创 LeetCode 23. 合併K個排序鏈表

題目描述: 合併 k 個排序鏈表,返回合併後的排序鏈表。請分析和描述算法的複雜度。 示例: 輸入: [   1->4->5,   1->3->4,   2->6 ] 輸出: 1->1->2->3->4->4->5->6   思路1:遍歷

原创 LeetCode 32. 最長有效括號

題目描述: 給定一個只包含 '(' 和 ')' 的字符串,找出最長的包含有效括號的子串的長度。 示例 1: 輸入: "(()" 輸出: 2 解釋: 最長有效括號子串爲 "()" 示例 2: 輸入: ")()())" 輸出: 4 解釋

原创 LeetCode 96. 不同的二叉搜索樹

題目描述: 給定一個整數 n,求以 1 ... n 爲節點組成的二叉搜索樹有多少種? 示例: 輸入: 3 輸出: 5 解釋: 給定 n = 3, 一共有 5 種不同結構的二叉搜索樹: 1 3 3

原创 LeetCode 94. 二叉樹的中序遍歷

題目描述: 給定一個二叉樹,返回它的中序 遍歷。 示例: 輸入: [1,null,2,3] 1 \ 2 / 3 輸出: [1,3,2] 進階: 遞歸算法很簡單,你可以通過迭代算法完成嗎?   思路