979. Distribute Coins in Binary Tree——depth

题目分析: 每个节点需要移动的次数是  子节点需要移动的+当前的个数-1

Then, the number of moves we make from this node to and from its children is abs(dfs(node.left)) + abs(dfs(node.right))

class TreeNode(object):
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None

class Solution(object):
    def sortedArrayToBST(self, root):
        self.ans = 0

        def dfs(node):
            if not node:
                return 0
            L, R = dfs(node.left), dfs(node.right)
            self.ans += abs(L) + abs(R)
            return node.val + L + R - 1

        dfs(root)
        return self.ans

 

相关文章:

  • 2022-12-23
  • 2021-10-01
  • 2021-09-03
  • 2021-09-23
  • 2021-08-14
  • 2022-01-07
  • 2021-11-18
  • 2021-07-05
猜你喜欢
  • 2021-08-15
  • 2021-09-24
  • 2022-12-23
  • 2022-12-23
  • 2021-12-09
  • 2021-10-17
相关资源
相似解决方案