您的位置:首页 > 其它

打印结点和等于某个值的所有路径

2015-08-24 16:04 435 查看






public void findSum(TreeNode node,int sum,int []path)

{

if(node==null)

{

return ;

}

/*将当前结点插入路径

*/

path[level]=node.data;

/*查找以此为终止且总和为sum的路径*/

int t=0;

for(int i=level;i>=0;i--)

{

t+=path[i];

if(t==sum)

{

print(path,i,level);

}

}

/*

查找此结点之下的结点

*/

findSum(node.left,sum,path.level+1);

findSum(node.right,sum,path,level+1);

/*

从路径中移除当前结点

*/

path[level]=Integer.MIN_VALUE;

}

public void findSum(TreeNode node,int sum)

{

int depth=depth(node);

int []path=new int[depth];

findSum(node,sum,path,0);

}

public static void print(int [] path,int start,int end)

{

for(int i=start;i<=end;i++)

{

System.out.print(path[i]+"");

}

System.out.println();

}

public int depth(TreeNode node)

{

if(node==null)

return 0;

else

{

return 1+Math.max(depth(node.left),depth(node.right));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: