原创 (Java)leetcode-429 N-ary Tree Level Order Traversal(N叉樹的層序遍歷)

題目描述 給定一個 N 叉樹,返回其節點值的層序遍歷。 (即從左到右,逐層遍歷)。 例如,給定一個 3叉樹 : 返回其層序遍歷: [ [1], [3,2,4], [5,6] ] 說明: 樹的深度不

原创 (Java)leetcode-814 Binary Tree Pruning(二叉樹剪枝)

題目描述 給定二叉樹根結點 root ,此外樹的每個結點的值要麼是 0,要麼是 1。 返回移除了所有不包含 1 的子樹的原二叉樹。 ( 節點 X 的子樹爲 X 本身,以及所有 X 的後代。) 示例1: 輸入: [1,null,0,

原创 (Java)leetcode-104 Maximum Depth of Binary Tree (二叉樹的最大深度)

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

原创 (Java)leetcode-235 Lowest Common Ancestor of a Binary Search Tree (二叉搜索樹的最近公共祖先)

題目描述 給定一個二叉搜索樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x,滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個

原创 (Java)leetcode-1325 Delete Leaves With a Given Value(刪除給定值的葉子節點)

題目描述 給你一棵以 root 爲根的二叉樹和一個整數 target ,請你刪除所有值爲 target 的 葉子節點 。 注意,一旦刪除值爲 target 的葉子節點,它的父節點就可能變成葉子節點;如果新葉子節點的值恰好也是 ta

原创 (Java)leetcode-113 Path Sum II(路徑總和 II)

題目描述 給定一個二叉樹和一個目標和,找到所有從根節點到葉子節點路徑總和等於給定目標和的路徑。 說明: 葉子節點是指沒有子節點的節點。 示例: 給定如下二叉樹,以及目標和 sum = 22, 5

原创 (Java)leetcode-404 Sum of Left Leaves(左葉子之和)

題目描述 計算給定二叉樹的所有左葉子之和。 示例: 在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24 思路 先序遍歷,過程中判斷是否爲葉子節點。爲了判斷是否爲左邊的葉子,遞歸方法再傳一個參數來判斷。 代碼 cl

原创 (Java)leetcode-257 Binary Tree Paths (二叉樹的所有路徑)

題目描述 給定一個二叉樹,返回所有從根節點到葉子節點的路徑。 說明: 葉子節點是指沒有子節點的節點。 思路 前序遍歷二叉樹,同時用字符串temp記錄路徑,每當遍歷到葉子節點,則將此時的路徑添加到結果集合中, 並且不加“- >”符

原创 (Java)leetcode-1315 Sum of Nodes with Even-Valued Grandparent(祖父節點值爲偶數的節點和)

題目描述 給你一棵二叉樹,請你返回滿足以下條件的所有節點的值之和: 該節點的祖父節點的值爲偶數。(一個節點的祖父節點是指該節點的父節點的父節點。) 如果不存在祖父節點值爲偶數的節點,那麼返回 0 。 思路 當我們在遍歷至某個節點

原创 (Java)leetcode-563 Binary Tree Tilt(二叉樹的坡度)

題目描述 給定一個二叉樹,計算整個樹的坡度。 一個樹的節點的坡度定義即爲,該節點左子樹的結點之和和右子樹結點之和的差的絕對值。空結點的的坡度是0。 整個樹的坡度就是其所有節點的坡度之和。 注意: 任何子樹的結點的和不會超過32位

原创 劍指offer - 55 - I. 二叉樹的深度

題目描述 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 / 9 2

原创 (Java)leetcode-671 Second Minimum Node In a Binary Tree(二叉樹中第二小的節點)

題目描述 給定一個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能爲 2 或 0。如果一個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。 給出這樣的一個二叉樹,你需要輸出所有節點中的第二小的值。如果第

原创 (Java)leetcode-449 Serialize and Deserialize BST (序列化和反序列化二叉搜索樹)

題目描述 序列化是將數據結構或對象轉換爲一系列位的過程,以便它可以存儲在文件或內存緩衝區中,或通過網絡連接鏈路傳輸,以便稍後在同一個或另一個計算機環境中重建。 設計一個算法來序列化和反序列化二叉搜索樹。 對序列化/反序列化算法的工

原创 (Java)leetcode-236 Lowest Common Ancestor of a Binary Tree(二叉樹的最近公共祖先)

題目描述 給定一個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x,滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個節點

原创 劍指offer - 22 - 鏈表中倒數第k個節點

題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個節點。爲了符合大多數人的習慣,本題從1開始計數,即鏈表的尾節點是倒數第1個節點。例如,一個鏈表有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個鏈表的倒數第3個節點是