原创 leetcode_334.遞增的三元子序列

題目 給定一個未排序的數組,判斷這個數組中是否存在長度爲 3 的遞增子序列。 數學表達式如下: 如果存在這樣的 i, j, k, 且滿足 0 ≤ i < j < k ≤ n-1, 使得 arr[i] < arr[j] < ar

原创 關於C++自定義函數的參數以及傳輸數值或地址

零 目錄 一 準備工作 實參與形參 全局變量 非全局變量(或稱局部變量) 二 傳輸地址或數值 傳輸數值 傳輸地址 對比 三 總代碼 一 準備工作 ——講解涉及到的概念將在這個模塊講解。 1 實參與形參 形參:也

原创 leetcode_104.二叉樹的最大深度(遞歸式)

題目 給定一個二叉樹,找出其最大深度。 二叉樹的深度爲根節點到最遠葉子節點的最長路徑上的節點數。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定二叉樹 [3,9,20,null,null,15,7], 3 /

原创 leetcode_100.相同的樹

題目 給定兩個二叉樹,編寫一個函數來檢驗它們是否相同。 如果兩個樹在結構上相同,並且節點具有相同的值,則認爲它們是相同的。 示例 1: 輸入: 1 1 / \ / \

原创 leetcode_101.對稱二叉樹(遞歸思路)

題目 給定一個二叉樹,檢查它是否是鏡像對稱的。 例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面這個 [1,2,2,null,3,

原创 leetcode_257.二叉樹的所有路徑(遞歸&字符串)

題目 原題鏈接 給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 輸入: 1 / \ 2 3 \ 5 輸出: ["1->2->5", "1->3"]

原创 【數據結構1】該死的線段樹,毀我青春……(C++)

線段樹筆記(Segment Tree) 假如我們給定一個數組 arr,該數組可能非常大。在程序運行過程中,你可能要做好幾次query和update操作: query(arr, L, R) 表示計算數組arr中,從下標L到下標R之

原创 leetcode_110.平衡二叉樹(自頂向下的遞歸解法)

題目 給定一個二叉樹,判斷它是否是高度平衡的二叉樹。 本題中,一棵高度平衡二叉樹定義爲: 一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。 示例 1: 給定二叉樹 [3,9,20,null,null,15,7]

原创 【數據結構1】該死的線段樹,毀我青春……

線段樹筆記(Segment Tree) 假如我們給定一個數組 arr,該數組可能非常大。在程序運行過程中,你可能要做好幾次query和update操作: query(arr, L, R) 表示計算數組arr中,從下標L到下標R之

原创 leetcode_687. 最長同值路徑(C++)

題目 原題鏈接 給定一個二叉樹,找到最長的路徑,這個路徑中的每個節點具有相同值。 這條路徑可以經過也可以不經過根節點。 注意: 兩個節點之間的路徑長度由它們之間的邊數表示。 示例 1: 輸入: 5

原创 leetcode_1022.從根到葉的二進制數之和(C++,用遞歸來遍歷)

題目 原題鏈接 給出一棵二叉樹,其上每個結點的值都是 0 或 1 。每一條從根到葉的路徑都代表一個從最高有效位開始的二進制數。例如,如果路徑爲 0 -> 1 -> 1 -> 0 -> 1,那麼它表示二進制數 01101,也就是 1

原创 leetcode_669. 修剪二叉搜索樹(C++,6行遞歸)

題目 原題鏈接 給定一個二叉搜索樹,同時給定最小邊界L 和最大邊界 R。通過修剪二叉搜索樹,使得所有節點的值在[L, R]中 (R>=L) 。你可能需要改變樹的根節點,所以結果應當返回修剪好的二叉搜索樹的新的根節點。 示例 1:

原创 leetcode_501. 二叉搜索樹中的衆數(C++)

題目 原題鏈接 給定一個有相同值的二叉搜索樹(BST),找出 BST 中的所有衆數(出現頻率最高的元素)。 假定 BST 有如下定義: 結點左子樹中所含結點的值小於等於當前結點的值 結點右子樹中所含結點的值大於等於當前結點的值

原创 leetcode_993. 二叉樹的堂兄弟節點(C++,廣搜)

題目 原題鏈接 在二叉樹中,根節點位於深度 0 處,每個深度爲 k 的節點的子節點位於深度 k+1 處。 如果二叉樹的兩個節點深度相同,但父節點不同,則它們是一對堂兄弟節點。 我們給出了具有唯一值的二叉樹的根節點 root,以及樹

原创 leetcode_606. 根據二叉樹創建字符串(C++,遞歸實現)

題目 原題鏈接 你需要採用前序遍歷的方式,將一個二叉樹轉換成一個由括號和整數組成的字符串。 空節點則用一對空括號 “()” 表示。而且你需要省略所有不影響字符串與原始二叉樹之間的一對一映射關係的空括號對。 示例 1: 輸入: 二叉