博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
222. Count Complete Tree Nodes
阅读量:5007 次
发布时间:2019-06-12

本文共 925 字,大约阅读时间需要 3 分钟。

Given a complete binary tree, count the number of nodes.

Definition of a complete binary tree from :

In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.

解题思路:如何巧妙的利用完全二叉树的性质来减少复杂度是这题的核心。一棵完全二叉树的左右两部分必有一部分是满二叉树。本题就是基于此产生了logn*logn的时间复杂度算法。

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int countNodes(TreeNode* root) {       if(!root)return 0;       TreeNode *l=root,*r=root;       int hl=0,hr=0;       while(l){hl++;l=l->left;}       while(r){hr++;r=r->right;}       if(hl==hr)return (1<
left)+countNodes(root->right); }};

 

转载于:https://www.cnblogs.com/tsunami-lj/p/6533202.html

你可能感兴趣的文章
深度优先搜索算法(DFS)以及leetCode的subsets II
查看>>
第10章 使用Apache服务部署静态网站
查看>>
关于给予webApp框架的开发工具
查看>>
c语言编写的生成泊松分布随机数
查看>>
Maven入门笔记
查看>>
算法面试通关40讲
查看>>
裸机离奇事件:Freescale usb 有关fault
查看>>
[转载]3521工程
查看>>
Python pandas ERROR 2006 (HY000): MySQL server has gone away
查看>>
Noip蒟蒻专用模板
查看>>
JAVA分词包
查看>>
iOS webView的常见属性和方法
查看>>
理解position:relative
查看>>
Codeforces Round #344 (Div. 2) Messager KMP的应用
查看>>
20145308刘昊阳 《Java程序设计》第4周学习总结
查看>>
js倒计时
查看>>
EasyUI datagrid 格式 二
查看>>
Android虹软人脸识别sdk使用工具类
查看>>
UI:基础
查看>>
浅谈 @RequestParam 和@PathVariable
查看>>