Count Complete Tree Nodes || LeetCode1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ #define MAX 1000 int Path[MAX]; int index1; int power( int x, int n){ int i,re; if (n==0) return 1; for (i=0,re=1;i<n;++i){ re=re*x; } return re; } void find_path( struct TreeNode *root){ if ( (root->left==NULL&&root->right==NULL) || (root==NULL) ) return ; struct TreeNode *t1,*t2; t1=root->left,t2=root->right; while (t1&&t2){ t1 = t1->left; t2 = t2->left; } if (t1){ Path[index1++]=0; find_path(root->left); } else { Path[index1++]=1; find_path(root->right); } } int countNodes( struct TreeNode* root) { int nlevel,i,temp,start,end; if (root==NULL) return 0; if (root->left==NULL && root->right==NULL) return 1; index1=0; find_path(root); nlevel=power(2,index1); for (i=0,start=1,end=nlevel;i<index1;++i) { if (Path[i]==0) end=(end+start)/2; else start=(end+start)/2+1; if (end==start) break ; } return nlevel-1+start; } |
分类:
Alogrithm
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· C# 13 中的新增功能实操
· Vue3封装支持Base64导出的电子签名组件
· 万字长文详解Text-to-SQL
· Ollama本地部署大模型总结
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(4)