关注
统计完全二叉树的节点数
【题目】
给定一棵完全二叉树的头节点head,返回这棵树的节点个数。
【要求】
如果完全二叉树的节点数为N,请实现时间复杂度低于O(N)的解法。
public int nodeNum(Node head) {
if (head == null) {
return 0;
}
return bs(head, 1, mostLeftLevel(head, 1));
}
public int bs(Node node, int l, int h) {
if (l == h) {
return 1;
}
if (mostLeftLevel(node.right, l + 1) == h) {
return (1 << (h - l)) + bs(node.right, l + 1, h);
} else {
return (1 << (h - l - 1)) + bs(node.left, l + 1, h);
}
}
public int mostLeftLevel(Node node, int level) {
while (node != null) {
level++;
node = node.left;
}
return level - 1;
}
查看原帖
点赞 2
相关推荐
12-18 17:50
浙江大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-14 16:03
西北政法大学 新媒体运营 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
3870次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399730次浏览 13635人参与
# 实习没事做是福还是祸? #
4160次浏览 68人参与
# 重来一次,你会对开始求职的自己说 #
918次浏览 19人参与
# 2025年终总结 #
134158次浏览 2292人参与
# 考研人,我有话说 #
156577次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7061次浏览 32人参与
# 实习简历求拷打 #
23947次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29950次浏览 201人参与
# 携程工作体验 #
18945次浏览 66人参与
# 大厂VS公务员你怎么选 #
69133次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140164次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93683次浏览 1007人参与
# 那些我实习了才知道的事 #
253057次浏览 1784人参与
# 非技术投递记录 #
672890次浏览 6820人参与
# 机械求职避坑tips #
81068次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154905次浏览 829人参与
# 第一份工作能做外包吗? #
94051次浏览 599人参与
# 作业帮求职进展汇总 #
85440次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101253次浏览 416人参与
