数据结构与算法随机复习–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官方在手机移动端加入新建文章分类标签、插入代码块和建目录的功能!!!😎😎😎🤗🤗🤗

相关推荐
sali-tec23 分钟前
C# 基于OpenCv的视觉工作流-章108-区域筛选
图像处理·人工智能·opencv·算法·计算机视觉
Gigavision6 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法
人工智能·python·深度学习·算法
鹿角片ljp6 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法
java·数据结构·算法
彧azz7 小时前
算法设计与分析:贪心与动态规划
数据结构·学习·算法·贪心算法·动态规划
Beyond_System|系统之外8 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55238 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
汉克老师9 小时前
GESP2026年9月认证C++六级( 第三部分编程题(1、数组划分))精讲
c++·gesp·小学生·学c++编程
千里码aicood9 小时前
基于PLC与机器视觉的智能分拣控制系统设计
c++·自动化·plc
漂流瓶jz10 小时前
UVA-1442 洞穴 题解答案代码 算法竞赛入门经典第二版
c++·算法·题解·aoapc·算法竞赛入门经典·uva
朽棘不雕10 小时前
进一步了解模板
c++