已解决
刷题笔记24——完全二叉树的节点个数
来自网友在路上 159859提问 提问时间:2023-09-22 22:55:48阅读次数: 59
最佳答案 问答题库598位专家为你答疑解惑
有些事情是不能告诉别人的,有些事情是不必告诉别人的,有些事情是根本没有办法告诉别人的,而且有些事情是,即使告诉了别人,你也会马上后悔的。——罗曼罗兰
222. 完全二叉树的节点个数
- java的幂运算要 (int) Math.pow(2,l+1)-1
- 计算满二叉树的节点数量公式:2 ^ height -1
- 一棵完全二叉树的两棵子树,至少有一棵是满二叉树
- 计算时间复杂度时,本题比较巧妙的就是,因为完全二叉树的子树也是完全二叉树,所以每次分叉只需要走其中一支即可,即O(logN),而每次算深度即while循环这里需要O(logN),因此时间复杂度为 O(logN*logN)
class Solution {public int countNodes(TreeNode root) {if(root==null) return 0;int l = 0;int r = 0;TreeNode lt = root;while(lt.left!=null){lt = lt.left;l++;}TreeNode rt = root;while(rt.right!=null){rt = rt.right;r++;}if(l==r) return (int)Math.pow(2,l+1)-1;return 1 + countNodes(root.left) + countNodes(root.right);}
}
下一章开始刷图算法
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"刷题笔记24——完全二叉树的节点个数":http://eshow365.cn/6-11714-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 汽车电子——产品标准规范汇总和梳理(UDS诊断)
- 下一篇: 排序算法-----归并排序