博客
关于我
Leedcode1-求树的最小高度
阅读量:794 次
发布时间:2023-01-30

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

#include 
#include
#include
using namespace std; // 处理二叉树深度问题 // 情况分析:空树;没有子树;只有左/右子树;有两子树 struct BinaryNode { BinaryNode *left; BinaryNode *right; int data; }; struct BinaryTree { BinaryNode *head; }; // 后序遍历实现深度计算 int getDepth(BinaryNode *node) { if (node == NULL) { return 0; } int left_depth = getDepth(node->left); int right_depth = getDepth(node->right); if (left_depth && right_depth) { return min(left_depth, right_depth) + 1; } else { return max(left_depth, right_depth) + 1; } } // 层次遍历实现深度计算 int getDepth2(BinaryNode *root) { if (root == NULL) { return 0; } queue
q; q.push(root); int depth = 0; while (!q.empty()) { queue
qt; depth++; while (!q.empty()) { BinaryNode *temp = q.front(); q.pop(); if (!temp->left && !temp->right) { return depth; } if (temp->left) { qt.push(temp->left); } if (temp->right) { qt.push(temp->right); } } q = qt; } return depth; } int main() { // 构建示例二叉树 BinaryTree btree; BinaryNode node1 = { NULL, NULL, 7 }; BinaryNode node2 = { NULL, NULL, 9 }; BinaryNode node3 = { NULL, NULL, 8 }; BinaryNode node4 = { NULL, NULL, 4 }; BinaryNode node5 = { NULL, NULL, 2 }; BinaryNode node6 = { NULL, NULL, 5 }; BinaryNode node7 = { NULL, NULL, 10 }; btree.head = &node1; node1.left = &node3; node1.right = &node2; node2.right = &node7; node3.left = &node4; node4.left = &node5; node4.right = &node6; // 计算树的深度 int height = getDepth2(&node1); cout << height << endl; }

运行结果:

转载地址:http://mtgyk.baihongyu.com/

你可能感兴趣的文章
laravel 表单验证
查看>>
laravel 调试sql
查看>>
laravel 路由缓存
查看>>
Laravel 连接(Join)
查看>>
laravel 通过令牌获取用户ID
查看>>
laravel 部署 file_put_contents failed to open stream: No such file or directory
查看>>
laravel 验证机制validation
查看>>
Laravel5 容器自动加载依赖的原理
查看>>
laravel5.5 __Resource路由__RESTFul风格控制器
查看>>
Laravel5.5 集成 mPDF
查看>>
laravel5.5中添加对分页样式的修改上一页和下一页
查看>>
laravel5.5之模型操作数据库 — Eloquent ORM(实践)
查看>>
Laravel5.5开发规范 [ 个人总结 ]
查看>>
laravel5.5数据库迁移入门实践
查看>>
Laravel5.5添加新路由文件并制定规则
查看>>
laravel5.5组件之 Forms & HTML 组件 (laravelcollective/html)
查看>>
Laravel5.5集成七牛云上传、管理(删除、查询)
查看>>
Laravel5.5集成极光推送_解决推送失败重推问题
查看>>
laravel中composer镜像服务的方式
查看>>
Laravel前后台+API路由分离架构(完善)
查看>>