数据结构与算法随机复习–Day1

说明:本系列文章面向数据结构与算法复习,除了基础知识复盘还有很多裨益小思考,考研保研笔试面试可用,要备战大厂应聘则难度偏低,因为不涉及dp等高阶应用算法、海量数据优化处理和边界条件等特细节考量。复习采用

{手写代码(多是C++)→AI辅助诊察(Loop【→返修→AI辅助诊察】)→讨论与总结}

的形式开展,更新不定期,欢迎持续关注,有更优解法可以直接在评论区呈现。

Day1直接上二叉树里面的热门考点------统计节点数和叶子节点(度为2)数,组合起来可以计算内部节点数。对于完全二叉树(Complete Binary Tree)的场景,也可以直接通过总节点数计算叶子结点数。核心思路是递归调用,可以使用AI后面建议的双递归或者单递归调用(我的一种实现)😄。

说明:此处省略二叉树结构体(我认为不能使用类)的定义,在main函数内部用...占位。

一、普通二叉树总节点数计算(完全二叉树可导出计算叶子结点数)

二、普通二叉树叶子节点数目计算

三、裨益思考与AI辅助诊察

可读性更强但占用更多栈空间(优化方向)的双递归(总节点个数只需要在return表达式内+1)

int countLeafNodes(btree* root) {

if (root == nullptr) return 0;

if (root->left == nullptr && root->right == nullptr) return 1;

return countLeafNodes(root->left) + countLeafNodes(root->right);

}

写在最后:为提升创作便捷性,建议CSDN官方在手机移动端加入新建文章分类标签、插入代码块和建目录的功能!!!😎😎😎🤗🤗🤗

相关推荐
顶点多余1 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI情绪识别开源2 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
罗西的思考2 小时前
【Agentic RL / 强化学习框架】Molt 设计解读
人工智能·算法·机器学习
「QT(C++)开发工程师」2 小时前
C++ auto 用法详解
开发语言·c++
OPEN-F3 小时前
C++STL教程:容器适配器与实用工具
开发语言·c++
OPEN-F3 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
hahaha60163 小时前
HLS高层次综合设计技巧--C++类和模板
图像处理·人工智能·算法·计算机视觉
有点。3 小时前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN3 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
多弗朗皮卡丘4 小时前
算法详解4:买卖股票的最佳时机系列(上)
算法