Given the `root` of a binary tree and an integer `targetSum`, return all **root-to-leaf** paths where the sum of the node values in the path equals `targetSum`. Each path should be returned as a list of the node **values**, not node references. A **root-to-leaf** path is a path starting from the root and ending at any leaf node. A **leaf** is a node with no children.
Example 1
Input: root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
Output: [[5,4,11,2],[5,8,4,5]]
Explanation: 5 + 4 + 11 + 2 = 22 and 5 + 8 + 4 + 5 = 22. Every other root-to-leaf path adds up to a different total.
Example 2
Input: root = [1,2,3], targetSum = 5
Output: []
Explanation: Neither root-to-leaf path (1+2 or 1+3) equals 5.
Example 3
Input: root = [1,2], targetSum = 0
Output: []
Explanation: The only root-to-leaf path, 1 → 2, sums to 3, not 0.
Walk every root-to-leaf path with DFS. Carry the remaining target down; append each node's value to the current path on the way in and pop it on the way out. At a leaf, record the path if the remaining target hit zero.
Run checks all cases above. Submit evaluates all test cases.