当前位置: 首页 > wzjs >正文

网站运营心得吉安网站建设343000

网站运营心得,吉安网站建设343000,网站是做百度快照推广好,用现成的php模板 怎么做网站题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入:root [1,n…

题目

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

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

示例

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:3

示例 2:

输入:root = [1,null,2]
输出:2

分析

深度优先搜索(递归)

核心思想:对于一个二叉树,它的最大深度等于其左子树和右子树的最大深度中的较大值加 1(加上当前根节点)。如果根节点为空,那么深度为 0。

时间复杂度:O(n), n 为二叉树节点的个数

空间复杂度:O(h), h 表示二叉树的高度

class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) {return 0;}int leftDepth = maxDepth(root->left);int rightDepth = maxDepth(root->right);return max(leftDepth, rightDepth) + 1;}
};

广度优先搜索(迭代)

核心思想:通过队列来存储每一层的节点,每遍历完一层,深度加 1。

时间复杂度:O(n), n 为二叉树节点的个数

空间复杂度:O(m),m 是二叉树中节点数最多的那一层的节点数

class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) {return 0;}queue<TreeNode*> nodeQueue;nodeQueue.push(root);int depth = 0;while (!nodeQueue.empty()) {int levelSize = nodeQueue.size();for (int i = 0; i < levelSize; ++i) {TreeNode* current = nodeQueue.front();nodeQueue.pop();if (current->left) {nodeQueue.push(current->left);}if (current->right) {nodeQueue.push(current->right);}}++depth;}return depth;}
};

知识充电

queue 队列

queue(队列)是一种重要的数据结构,遵循先进先出(FIFO, First-In-First-Out)的原则。

基本操作

初始化
#include <queue>
// 定义一个存储 int 类型元素的队列
std::queue<int> myQueue;
入队(push)

push 方法用于将一个元素添加到队列的尾部。

#include <iostream>
#include <queue>
int main() {std::queue<int> myQueue;// 入队操作myQueue.push(10);myQueue.push(20);myQueue.push(30);return 0;
}
出队(pop)

pop 方法用于移除队列头部的元素,但不返回该元素的值。

#include <iostream>
#include <queue>
int main() {std::queue<int> myQueue;myQueue.push(10);myQueue.push(20);myQueue.push(30);// 出队操作myQueue.pop();// 此时队列中剩下 20 和 30return 0;
}
访问头元素(front)

front 方法用于返回队列头部的元素,但不将其从队列中移除。

#include <iostream>
#include <queue>
int main() {std::queue<int> myQueue;myQueue.push(10);myQueue.push(20);myQueue.push(30);// 访问队列头部元素int frontElement = myQueue.front();std::cout << "The front element of the queue is: " << frontElement << std::endl;return 0;
}
访问尾元素(back)

back 方法用于返回队列尾部的元素,但不将其从队列中移除。

#include <iostream>
#include <queue>
int main() {std::queue<int> myQueue;myQueue.push(10);myQueue.push(20);myQueue.push(30);// 访问队列尾部元素int backElement = myQueue.back();std::cout << "The back element of the queue is: " << backElement << std::endl;return 0;
}
http://www.dtcms.com/wzjs/839010.html

相关文章:

  • 怎么做淘宝返利网站wordpress 付费内容
  • 广州建设工程造价管理网站sae搭建wordpress
  • 昆明网站推广优化十大最新高科技
  • 做的电影网站很卡wordpress 服务器迁移
  • 西安建设银行工作招聘网站wordpress 调整文字
  • 网站开发作业总结视频课程网站建设
  • 文明农村建设网站策划营销
  • 360网站建设公司品牌营销策划网站
  • 厦门手机网站建设wordpress写文章卡
  • 吴川网站建设公司网站建设服务费属于什么科目
  • 重庆建设招标造价信息网站放在主机上的网站程序如何建压缩包然后直接下载
  • 网站导航栏三根横线怎么做的网站营销应该怎么做
  • 变装的他wordpressseo综合查询接口
  • 怎样做好网站推广广东东莞出行最新政策
  • 杭州企业建设网站企业腾讯网站安全检测
  • 房地产公司网站下载免费建站哪个最好
  • 佛山外贸网站建设效果网站提示未备案
  • 建站加盟怎样给网站做新闻稿子
  • 内网网站 建设目标wordpress 图片读取
  • 个人网站域名起名士兵突击网站怎么做
  • 订阅号可以做微网站吗电商打单软件排名
  • 郑田生网站建设及维护常州云之家网站建设公司怎么样
  • 利用路由器做网站简约ppt模板免费下载
  • 汕头网站建设和运营获取网站漏洞后下一步怎么做
  • 彩虹云商城网站网站建设公司 云智互联
  • 做中小型网站最好的架构金融门户网站模版
  • 免费解析网站郑州网站建设(智巢)
  • 旅游电子商务网站建设目的广州网站制作设计公司
  • 深圳市福田建设局网站google怎么做网站推广
  • 深圳住房和建设部网站建设网站策划