题目:输入一颗二叉树和一个整数,打印出二叉树中结点的值和为输入整数的所以路径。
public static void findPath(TreeNode root,int expSum,Stack<Integer> stack,int curSum){
curSum+=root.val;
stack.push(root.val);
boolean isLeaf=root.left==null && root.right==null; //是否是子节点
if(curSum==expSum && isLeaf){
System.out.print("A path is found: ");
for(int cc:stack){
System.out.print(cc+" ");
}
}
if(root.left!=null){
findPath(root.left,expSum,stack,curSum);
}
if(root.right!=null){
findPath(root.right,expSum,stack,curSum);
}
stack.pop();
}
public static void findPath(TreeNode root,int expSum){
if(root==null){
return;
}
Stack<Integer> stack=new Stack<Integer>();
int curSum=0;
findPath(root,expSum,stack,curSum);
}