原创 leetcode_9_刪除鏈表的倒數第N個節點

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

原创 leetcode_345_反轉字符串中的元音字母

編寫一個函數,以字符串作爲輸入,反轉該字符串中的元音字母。 示例 1: 給定 s = "hello", 返回 "holle". 示例 2: 給定 s = "leetcode", 返回 "leotcede". 注意: 元音字母不包括 "y"

原创 leetcode_94_二叉樹的中序遍歷

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

原创 leetcode_20_有效的括號

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

原创 leetcode_144_二叉樹的前序遍歷

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

原创 leetcode_二叉搜索樹中的搜索

給定二叉搜索樹(BST)的根節點和一個值。 你需要在BST中找到節點值等於給定值的節點。 返回以該節點爲根的子樹。 如果節點不存在,則返回 NULL。例如,給定二叉搜索樹: 4 / \ 2

原创 leetcode_98_驗證二叉搜索樹

給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。一個二叉搜索樹具有如下特徵:節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜索樹。示例 1:輸入: 2 / \

原创 leetcode_28_實現strStr()

實現 strStr() 函數。 給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。如果不存在,則返回  -1。 示例 1: 輸入: h

原创 leetcode_26_刪除排序數組中的重複項

給定一個排序數組,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 示例 1: 給定數組 nums = [1,1

原创 經典排序算法C++

冒泡排序: 依次比較相鄰的兩個元素,如果前者大於後者,則交換順序。第一趟完成後最後的元素是最大的,然後針對所有的元素重複以上的步驟,除了最後一個。時間複雜度n^2 void bubblesort(vector<int>& arr) {

原创 leetcode_二叉搜索樹中插入數

給定二叉搜索樹(BST)的根節點和要插入樹中的值,將值插入二叉搜索樹。 返回插入後二叉搜索樹的根節點。 保證原始二叉搜索樹中不存在新值。注意,可能存在多種有效的插入方式,只要樹在插入後仍保持爲二叉搜索樹即可。 你可以返回任意有效的結果。例

原创 leetcode_88_合併兩個有序數組

給定兩個有序整數數組 nums1 和 nums2,將 nums2 合併到 nums1 中,使得 num1 成爲一個有序數組。 說明: 初始化 nums1 和 nums2 的元素數量分別爲 m 和 n。 你可以假設 nums1 有足夠的空間

原创 leetcode_350_兩個數組的交集 II

給定兩個數組,寫一個方法來計算它們的交集。 例如: 給定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 注意:    輸出結果中每個元素出現的次數,應與元素在兩個數組中出現的次數一致。

原创 leetcode_74_搜索二維矩陣

編寫一個高效的算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性: 每行中的整數從左到右按升序排列。 每行的第一個整數大於前一行的最後一個整數。 示例 1: 輸入: matrix = [ [1, 3, 5,

原创 二叉搜索樹

1、定義二叉搜索樹(BST)是二叉樹的一種特殊表示形式,它滿足如下特性:每個節點中的值必須大於(或等於)存儲在其左側子樹中的任何值。每個節點中的值必須小於(或等於)存儲在其右子樹中的任何值。下面是一個二叉搜索樹的例子:像普通的二叉樹一樣,