代码演示:
package swordfingeroffer;
import java.util.Stack;
public class InterviewQuestion34 {
public void findPath(TreeNode root, int k) {
if (null == root) {
return;
}
Stack<Integer> stack = new Stack<>();
findPath(root, k, stack);
}
private void findPath(TreeNode root, int k, Stack<Integer> pathStack) {
if (null == root || k < 0) {
return;
}
if (null == root.left && null == root.right) {
if (k == root.val) {
for (int patnValue : pathStack) {
System.out.print(patnValue + " ");
}
System.out.print(root.val);
}
} else {
pathStack.push(root.val);
findPath(root.left, k - root.val, pathStack);
findPath(root.right, k - root.val, pathStack);
pathStack.pop();
}
}
}