366. 寻找⼆叉树的叶⼦节点
366. 寻找⼆叉树的叶⼦节点
这道题混用二叉树递归 「遍历」和「分解问题」 两种思维模式。
class FindLeaves:"""366. 寻找⼆叉树的叶⼦节点https://leetcode.cn/problems/find-leaves-of-binary-tree/"""def solution(self, root):self.res = []self.traverse(root)return self.res# 定义:输⼊节点 root,返回以 root 为根的树的最⼤深度def traverse(self, root):if not root:return 0left_height = self.traverse(root.left)right_height = self.traverse(root.right)# 当前节点距离叶⼦节点的⾼度(最⼤深度)h = max(left_height, right_height) + 1if len(self.res) < h:self.res.append([])self.res[h-1].append(root.val)return h