2024-01-08 18:34:42

4_1二叉树的最大深度

给定一个二叉树?root?,返回其最大深度。

二叉树的?最大深度?是指从根节点到最远叶子节点的最长路径上的节点数。

Answer-

方法一:深度优先递归

核心 :

n1 = maxdep(dp->left);

n2 = maxdep(dp->right);

return (n1>n2 ? n1:n2) + 1;?

方法二:广度优先遍历

核心 :一边pop一边push,怎么知道要pop多少个呢?用一个int size;来记录上一层应该出多少个元素。pop上层元素前先记录该层总个数size,出一个则size--,一边出一边加其左右孩子,就解决了。总体思想是每次只让队列保留当前层的所有节点。

学会了:

C++队列的使用

//导入

include "queue.h"

//声明

Queue<datatype> queue_name;

//加入

queue_name.push(value);

//弹出-和stack一样不返回元素仅仅弹出

queue.pop;

//获取front指向元素

queue.front();

//判空

queue.empty();

文章来源:https://blog.csdn.net/qq_55414382/article/details/135458623
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。