leetcode 979 在二叉樹中分配硬幣

2022-09-09 06:09:11 字數 1519 閱讀 5317

給定乙個有 n 個結點的二叉樹的根結點 root,樹中的每個結點上都對應有 node.val 枚硬幣,並且總共有 n 枚硬幣。

在一次移動中,我們可以選擇兩個相鄰的結點,然後將一枚硬幣從其中乙個結點移動到另乙個結點。(移動可以是從父結點到子結點,或者從子結點移動到父結點。)。

返回使每個結點上只有一枚硬幣所需的移動次數。

示例 1:

輸入:[3,0,0]

輸出:2

解釋:從樹的根結點開始,我們將一枚硬幣移到它的左子結點上,一枚硬幣移到它的右子結點上。

示例 2:

輸入:[0,3,0]

輸出:3

解釋:從根結點的左子結點開始,我們將兩枚硬幣移到根結點上 [移動兩次]。然後,我們把一枚硬幣從根結點移到右子結點上。

示例 3:

輸入:[1,0,2]

輸出:2

示例 4:

輸入:[1,0,0,null,3]

輸出:4

1<= n <= 100

0 <= node.val <= n

後序遍歷:

1:若為null,則返回0;

2:獲取左右節點的返回值,表示左右節點需要的金幣數量,正數代表子節點多的,送給父節點的。負數代表子節點少的,需要像父節點借的。

979 在二叉樹中分配硬幣

給定乙個有 n 個結點的二叉樹的根結點 root,樹中的每個結點上都對應有 node.val 枚硬幣,並且總共有 n 枚硬幣。在一次移動中,我們可以選擇兩個相鄰的結點,然後將一枚硬幣從其中乙個結點移動到另乙個結點。移動可以是從父結點到子結點,或者從子結點移動到父結點。返回使每個結點上只有一枚硬幣所需...

leetcode 二叉樹 對稱二叉樹

給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 方法一 遞迴 思路 如果乙個樹的左子樹與右子樹映象對稱,則該樹是對稱的 兩個樹互為映象的...

LeetCode (二叉樹)反轉二叉樹

遞迴交換每乙個節點的左右子樹,重點在於訪問每乙個節點,然後交換左右子樹 definition for a binary tree node.struct treenode struct treenode inverttree struct treenode root 由於至少要講每乙個節點都訪問一次...