#### 原题说明

Given the `root` of a binary tree, consider all root to leaf paths: paths from the root to any leaf.  (A leaf is a node with no children.)

`node` is insufficient if every such root to leaf path intersecting this `node` has sum strictly less than `limit`.

Delete all insufficient nodes simultaneously, and return the root of the resulting binary tree.

Example 1:

`Input: root = [1,2,3,4,-99,-99,7,8,9,-99,-99,12,13,-99,14], limit = 1Output: [1,2,3,4,null,null,7,8,9,null,14]`

Example 2:

`Input: root = [5,4,8,11,null,17,4,7,1,null,null,5,3], limit = 22Output: [5,4,8,11,null,17,4,7,null,null,null,5]`

Example 3:

`Input: root = [1,2,-3,-5,null,4,null], limit = -1Output: [1,null,-3,4]`

Note:

1. The given tree will have between `1` and `5000` nodes.
2. `-10^5 <= node.val <= 10^5`
3. `-10^9 <= limit <= 10^9`

#### 解题思路

`dfs`的方法解题，

1. 当一个节点是叶子节点时，直接判断它是否是充分的，如果不是，返回`nullptr`，否则返回该节点的指针。
2. 当一个节点不是叶子节点时，判断它的子节点是不是都是不充分的。如果都是不充分的，那么返回`nullptr`，也就是说它也是不充分的。否则返回该节点的指针。

#### 视频讲解

------ 关注公众号：猩猩的乐园 ------