import java.util.List;
import java.util.Stack;
public class Solution {
class PersonNode{
int val;
List<PersonNode> people;
PersonNode(int val){
this.val = val;
}
}
// 0 for choose, 1 for not
public int[] helper(PersonNode root){
int[] res = new int[2];
if(root.people.size() == 0){
res[0] = root.val;
return res;
}
res[0] = root.val;
for(PersonNode ps : root.people){
int[] psRes = helper(ps);
res[0] += psRes[1];
res[1] += Math.max(psRes[0],psRes[1]);
}
return res;
}
public int companyTree(PersonNode root){
int[] res = helper(root);
return Math.max(res[0],res[1]);
}
}
[snap]company tree
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Given a binary treestruct TreeLinkNode {TreeLinkNode *lef...
- B-Tree(这儿可不是减号,就是常规意义的BTree)是一种多路搜索树:1.定义任意非叶子结点最多只有M个儿子;...
- 给一个binary tree,每一个node含有parent指向parent,给定一个node,找出他右侧的nod...
- 原题是: 代码是: 要注意的是: 1.python 里没有&&, 而是and; 没有Null,而是None.2.调...