給定乙個有 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 由於至少要講每乙個節點都訪問一次...