打印结点和等于某个值的所有路径
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));
}
}
相关文章推荐
- 下拉菜单点击时的箭头
- 数32位 unsigned int中1的个数
- 【LeetCode】6. ZigZag Conversion
- Hyper-V Comparison:Windows Server 2008 R2 vs Windows Server 2012
- 将表中子字段的值按主字段分组后以空格连接作为一个字段
- 【简单学习shell】iptables命令实用
- PullToRefreshListView使用中的一些问题
- MySQL简单MHA环境搭建
- git使用
- HBase表设计原则整理
- 解析PSNR和SSIM
- HDU 3038 How Many Answers Are Wrong(带权并查集)
- hdoj 3488 Tour 【最小费用最大流】【KM算法】
- 使用ServletContext对象统计网站的访问量
- android ViewPager滑动欢迎界面
- 线程安全的方式引发事件
- POJ 3020 Antenna Placement 匈牙利算法,最大流解法 难度:1
- firefox HackBar组件模拟请求POST请求
- Coding 两步认证技术介绍
- 解决Fetching android sdk component information加载过久问题