一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 449|回复: 2
收起左侧

[CareerCup] career cup 4.9

[复制链接] |试试Instant~ |关注本帖
pengds 发表于 2014-10-18 06:49:42 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
Careercup 4.9,You are given a binary tree in which each node contains a value. Design an algorithm to print all paths which sum up to that value. Note that it can be any path in the tree - it does not have to start at the root.
1 void findSum(TreeNode head, int sum, ArrayList<Integer> buffer,
2 int level) {
3 if (head == null) return;
4 int tmp = sum;
5 buffer.add(head.data);
6 for (int i = level;i >- 1; i--){
7 tmp -= buffer.get(i);
8 if (tmp == 0) print(buffer, i, level);
9 }
10 ArrayList<Integer> c1 = (ArrayList<Integer>) buffer.clone();
11 ArrayList<Integer> c2 = (ArrayList<Integer>) buffer.clone();
12 findSum(head.left, sum, c1, level + 1);
13 findSum(head.right, sum, c2, level + 1);
14 }
15
16 void print(ArrayList<Integer> buffer, int level, int i2) {
17 for (int i = level; i <= i2; i++) {
18 System.out.print(buffer.get(i) + “ ”);
19 }
20 System.out.println();
21 }比如我输入
                  5
               4    3
           6   7   2   8
sum = 12,有没有可能输入4 - 5 - 3
感觉答案里没有这种可能啊
mrno5zzz 发表于 2014-10-18 22:59:43 | 显示全部楼层
题目说The path does not need to start or end at the root or a leaf, but it must go in a straight line down....看最后一句
回复 支持 反对

使用道具 举报

 楼主| pengds 发表于 2014-10-19 02:03:24 | 显示全部楼层
mrno5zzz 发表于 2014-10-18 22:59
题目说The path does not need to start or end at the root or a leaf, but it must go in a straight lin ...

谢谢解答!4版的书没有最后一句,琢磨了好久
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-7 02:04

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表