力扣 1448 統計二叉樹中好節點的數目

2021-10-25 03:29:11 字數 1142 閱讀 8779

給你一棵根為 root 的二叉樹,請你返回二叉樹中好節點的數目。

「好節點」x 定義為:從根到該節點 x 所經過的節點中,沒有任何節點的值大於 x 的值。

輸入:root = [3,1,4,3,null,1,5]

輸出:4

解釋:圖中藍色節點為好節點。

根節點 (3) 永遠是個好節點。

節點 4 -> (3,4) 是路徑中的最大值。

節點 5 -> (3,4,5) 是路徑中的最大值。

節點 3 -> (3,1,3) 是路徑中的最大值。

輸入:root = [3,3,null,4,2]

輸出:3

解釋:節點 2 -> (3, 3, 2) 不是好節點,因為 "3" 比它大。

輸入:root = [1]

輸出:1

解釋:根節點是好節點。

二叉樹中節點數目範圍是 [1, 10^5] 。

每個節點權值的範圍是 [-10^4, 10^4] 。

一、二叉樹的dp運用。每條從根結點到葉子結點經過的路線,設為陣列 path[0..n], 那麼到結點x的陣列為 path[0..x]。

則好節點的定義即是, 對於path的任意元素p, 都要有,  p <= path[x]。  因此在遍歷的時候,我們只需要儲存path 的最大值max 即可。 每次遍歷都更新max。

int result = 0;

public void gonext(treenode node, int max)

if (node.val >= max)

gonext(node.left, max);

gonext(node.right, max);

} public int goodnodes(treenode root)

力扣 對稱二叉樹

思路 我們可以實現這樣乙個遞迴函式,通過 同步移動 兩個指標的方法來遍歷這棵樹,pp 指標和 qq 指標一開始都指向這棵樹的根,隨後 pp 右移時,qq 左移,pp 左移時,qq 右移。每次檢查當前 pp 和 qq 節點的值是否相等,如果相等再判斷左右子樹是否對稱。class solution bo...

力扣 814 二叉樹剪枝

給定二叉樹根結點 root 此外樹的每個結點的值要麼是 0,要麼是 1。返回移除了所有不包含 1 的子樹的原二叉樹。節點 x 的子樹為 x 本身,以及所有 x 的後代。示例1 輸入 1,null,0,0,1 輸出 1,null,0,null,1 解釋 只有紅色節點滿足條件 所有不包含 1 的子樹 右...

力扣題解 對稱二叉樹

題目 給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。但是 1,2,2,null,3,null,3 則不是映象對稱的 public class solution treenode left root.left treenode right root.rig...