树和二叉树_7

embedded/2025/2/9 10:33:40/

树和二叉树_7

  • 一、leetcode-102
  • 二、题解
    • 1.引库
    • 2.代码


一、leetcode-102

二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

请添加图片描述

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

样例输出: [[3],[9,20],[15,7]]


二、题解

1.引库

 #include <iostream>#include <cstdio>#include <cstdlib>#include <queue>#include <stack>#include <algorithm>#include <string>#include <map>#include <set>#include <vector>using namespace std;

2.代码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public://使用队列进行广度搜索实现层序遍历 vector<vector<int>> levelOrder(TreeNode* root) {if(root==NULL) return vector<vector<int>>();TreeNode *node;queue<TreeNode *> q;q.push(root);vector<vector<int>> ans;while(!q.empty()){int cnt=q.size();vector<int> temp;for(int i=0;i<cnt;i++){node=q.front();temp.push_back(node->val);if(node->left) q.push(node->left);if(node->right) q.push(node->right);q.pop();}ans.push_back(temp);}return ans;}//使用栈进行深度搜索实现层序遍历void dfs(TreeNode* root,int k,vector<vector<int>> &ans){if(root==NULL) return ;if(k==ans.size()) ans.push_back(vector<int>());//如果k=数组的数量,说明是本层中第一个访问到的节点ans[k].push_back(root->val);dfs(root->left,  k+1,ans);dfs(root->right, k+1,ans);return ;}vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> ans;dfs(root,0,ans); //0是树的层数 return ans;}
};

http://www.ppmy.cn/embedded/160786.html

相关文章

原子核链式反应与曼哈顿计划

原子核链式反应是一种涉及原子核裂变的特殊链式反应&#xff0c;具有自我持续性和指数级增长的特性。 1. 什么是原子核链式反应&#xff1f; 原子核链式反应是指&#xff0c;当一个原子核&#xff08;比如铀-235或钚-239&#xff09;被中子撞击时&#xff0c;发生核裂变&#…

Nginx与frp结合实现局域网和公网的双重https服务

背景&#xff1a; 因为局域网内架设了 tiddlywiki、 Nextcloud 等服务&#xff0c;同时也把公司的网站架设在了本地&#xff0c;为了实现局域网直接在局域网内访问&#xff0c;而外部访问通过frps服务器作为反向代理的目的&#xff0c;才有此内容。 实现的效果如下图琐事 不喜欢…

Linux系统下,卸载MySQL

1 查看是否安装过MySQL 如果你是用rpm安装&#xff0c;检查一下RPM PACKAGE: rpm -qa | grep -i mysql如果存在mysql-libs的旧版本包&#xff0c;显示如下信息&#xff1a; 2 检查mysql service systemctl status mysqld.service此时mysql是启动中的状态 3 MySQL的卸载 3.1…

无限使用Cursor

原理&#xff1a;运行程序获得15天的免费试用期&#xff0c;重新运行程序重置试用期&#xff0c;实现无限使用。免费的pro账号&#xff0c;一个月有250的高级模型提问次数。 前提&#xff1a;已安装cursor cursor-vip工具&#xff1a;https://cursor.jeter.eu.org?p95d60efe…

【AI实践】Cursor上手-跑通Hello World和时间管理功能

背景 学习目的&#xff1a;熟悉Cursor使用环境&#xff0c;跑通基本开发链路。 本人背景&#xff1a;安卓开发不熟悉&#xff0c;了解科技软硬件常识 实践 基础操作 1&#xff0c;下载安装安卓Android Studio 创建一个empty project 工程&#xff0c;名称为helloworld 2&am…

开源项目OpenIM单机部署生产环境异常处理及数据恢复

在生产环境中&#xff0c;通常会采用集群部署来保证组件和服务的高可用性。然而&#xff0c;在资源有限的情况下&#xff0c;一些开发者可能会选择在生产环境中进行单机部署&#xff08;使用源码部署或docker容器&#xff09;。本文将介绍在单机部署环境下如何进行数据备份、异…

C++实现状态模式

首先上代码&#xff1a; #include <iostream> #include <memory>class Context;class State { public:virtual void Handle(Context * context) 0; //纯虚函数virtual ~State() default; //虚析构函数 };//创建状态A class ConcreateStateA : public State{…

QT通过setProperty设置不同QSS样式

如上切换效果就是通过setProperty来实现切换不同颜色的。 实现以上效果第一步&#xff0c;需要在QSS中做属性处理。 QLabel{color:red;} QLabel[status"1"]{color:black;} QLabel[status"2"]{color:white;} QLabel[status"3"]{color:blue;} QLa…