366. Find Leaves of Binary Tree

https://leetcode.com/problems/find-leaves-of-binary-tree/

DFS 记录当前Node的高度,每个高度相同的node被group到一起

from collections import defaultdict
class Solution:
    def findLeaves(self, root: TreeNode) -> List[List[int]]:
        res = []
        d = defaultdict(list)
        def dfs(node):
            if node == None:
                return 0
            leftHeight = dfs(node.left)
            rightHeight = dfs(node.right)
            currHeight = max(leftHeight,rightHeight)+1
            d[currHeight].append(node.val)
            return currHeight
        dfs(root)
        for v in d.values():
            res.append(v)
        return res
            

Last updated

Was this helpful?