算法——深度优秀搜索和广度优秀搜索

深度优先——递归

// 先序遍历
void dfs(TreeNode* node){if(!node){return;}cout<<node->val;dfs(node->left);dfs(node->right);
}
// 中序遍历
void dfs(TreeNode* node){if(!node){return;}dfs(node->left);cout<<node->val;dfs(node->right);
}
// 后序遍历
void dfs(TreeNode* node){if(!node){return;}dfs(node->left);dfs(node->right);cout<<node->val;
}

深度优先——非递归

void dfs(TreeNode *pRoot)
{if (!pRoot)  return;stack<TreeNode*> s;TreeNode* cur = pRoot;while (cur || !s.empty()) {while (cur) {s.push(cur);cur = cur->left;}cur = s.top();cout<<cur.val;s.pop();cur = cur->right;}return true;
}

广度优先——非递归(树的层次遍历)

void bfs(TreeNode* root)
{if(!root)  return;queue<TreeNode*> l;TreeNode *cur=root;l.push_back(cur);while(!l.empty()){//如果需要按层次进行某些事情在需要解开注释,在当前层次遍历// int cnt=l.size();// while(cnt--)// {TreeNode  *temp=l.front();cout<<temp->val;l.pop_front();if(temp->left)l.push_back(temp->left);if(temp->right)l.push_back(temp->right);//}}return res;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/766160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

API(Arrays,Lambda)

一、Arrays 操作数组的工具类。 常用方法&#xff1a; public static Strinq tostring(数组) 把数组拼接成一个字符串 public static int binarySearch(数组&#xff0c;查找的元素) 二分查找法查…

算法|基础算法|位运算

基础算法|位运算 1.与运算 2.或运算 3.非运算 4.异或运算 5.左移、右移运算 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 与运算 与…

05- 还在双引号添加字符串?- 文本块

原因 使用过java的string的时候&#xff0c;当我们使用json&#xff0c;sql&#xff0c;xml在代码里面进行初始化的时候&#xff0c;大量的\n,“” 的真的是噩梦&#xff0c;导致无法顺畅的阅读&#xff0c;我一般调试的时候&#xff0c;会把他打印到console上进行阅读或者格式…

IPMI开源库pyghmi基本使用

简介&#xff1a;Pyghmi是一个纯Python&#xff08;主要是IPMI&#xff09;服务器管理库。IPMI&#xff08;Intelligent Platform Management Interface&#xff0c;智能平台管理接口&#xff09;是一种开放的标准&#xff0c;旨在帮助系统管理员在本地和远程管理服务器系统。而…

探索Garnet:微软开源的高性能分布式缓存存储系统

微软研究院近期宣布推出一款名为Garnet的创新开源分布式缓存存储系统&#xff0c;致力于解决现代应用程序在处理大规模数据时对于高吞吐量、低延迟及卓越可扩展性的严苛要求。这款基于C# .NET 8.0构建的新型系统&#xff0c;充分利用了现代硬件能力&#xff0c;为应用程序开发人…

2024年【通信安全员ABC证】新版试题及通信安全员ABC证模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 通信安全员ABC证新版试题根据新通信安全员ABC证考试大纲要求&#xff0c;安全生产模拟考试一点通将通信安全员ABC证模拟考试试题进行汇编&#xff0c;组成一套通信安全员ABC证全真模拟考试试题&#xff0c;学员可通过…

C++初阶---类和对象

目录 1. 类的引入 2. 类的定义 4. 类的访问限定符及封装 4.1 访问限定符 4.2 封装 5. 类的作用域 6.类的实例化 7.类对象模型 8. this指针 8.1 this指针的引出 8.2 this指针的特性 8.3 C语言和C实现栈的对比 9.类的六个默认成员函数 10&#xff0c;构造函数 10.1…

新能源汽车BMS应用设计

新能源汽车BMS应用设计 电池管理系统&#xff08;BMS&#xff09; 概述 电池管理系统&#xff08;BMS&#xff09;为一套保护动力电池使用安全的控制系统&#xff0c;时刻监控电池的使用状态&#xff0c;通过必要措施缓解电池组的不一致性&#xff0c;为新能源车辆的使用安全…

LeetCode热题Hot100-两数之和

充分意识到Coding能力的重要性&#xff0c;重启算法刷题之旅。 没想到这么简单的题目都写的磕磕绊绊。 一刷只写自己的解&#xff0c;二刷再看有没有其他更巧妙的方法~ 题目&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目…

Prometheus+Grafana 监控Tongweb嵌入式(by lqw)

文章目录 1.思路2.部署准备3.Grafana仪表盘json文件下载4.tw嵌入式jar包本地引入依赖并测试运行5.运行jmx_prometheus_javaagent-0.19.0.jar形式获取监控数据&#xff08;方法一&#xff09;6.使用Actuator 获取监听数据&#xff08;方法二&#xff09;7.Prometheus部署8.Prome…

代码随想录day29(2)二叉树:将有序数组转换为二叉搜索树(leetcode108)

题目要求&#xff1a;将一个按照升序排列的有序数组&#xff0c;转换为一棵高度平衡二叉搜索树。 思路&#xff1a;思路比较简单&#xff0c;如果目标是平衡二叉树&#xff0c;我们每次只需要取数组的中间元素作为根节点&#xff0c;分成左右两个子树&#xff0c;再递归地进行…

B站python爬虫课程笔记(Q16-19结束)

下面是学习的网址&#xff1a; ​​​​​​【Python爬虫】 目录 16、捕捉异常try&except语句的一些问题 1&#xff09;一些常见的异常类型 2&#xff09;try&except的使用 17、测试Bug的一些问题 1&#xff09;assert断定函数的使用 2&#xff09;unittest单元…

SqlServer 数据库创建到指定目录

Sql 代码 CREATE DATABASE [StudentDB] CONTAINMENT NONE ON PRIMARY ( NAME NStudentDB, FILENAME ND:\Demo\DBs\StudentDB.mdf , SIZE 8192KB , MAXSIZE UNLIMITED, FILEGROWTH 65536KB ) LOG ON ( NAME NStudentDB_log, FILENAME NG:\Demo\DBs\StudentDB_log.ld…

fs-extra 抱错解决 TypeError: Cannot read property ‘native‘ of undefined

原来的写法&#xff0c;直接在最上面 import fs from fs-extra;在函数中&#xff0c;使用到的地方引入&#xff0c;修改为动态的 const fs await import("fs-extra");结果成功不抱错

学生综合考评管理系统|jsp+ Mysql+Java+ (可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;…

微服务鉴权的几种实现方案

1.Token 1.1 Token透传&#xff08;不推荐&#xff09; 刚开始接触微服务时网上给的方案大都数是通过透传Token做鉴权&#xff0c;但我认为这种方式不是很妥当。接着往下看&#xff1a; 这种方式通过透传Token使得各微服务都能获取到当前登录人信息&#xff0c;在代码编写上确…

RK3568平台 网络唤醒

一.什么是网络唤醒 网络唤醒(Wake-on-LAN&#xff0c;WOL)是一种计算机局域网唤醒技术&#xff0c;使局域网内处于关机或休眠状态的计算机&#xff0c;将状态转换成引导(Boot Loader)或运行状态。无线唤醒(Wake-on-Wireless-LAN&#xff0c;WoWLAN)作为 WOL 的补充技术&#x…

SpringBoot整合MyBatisPlus实现增删改查

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容:SpringBoot整合MyBatisPlus实现增删改查 📚个人知识库: Leo知识库,欢迎大家…

React——组件通讯

组件通讯介绍 组件中的状态是私有的&#xff0c;组件的状态只能在组件内部使用&#xff0c;无法直接在组件外使用&#xff0c;但是我们在日常开发中&#xff0c;通常会把相似、功能完整的应用才分成组件&#xff08;工厂模式&#xff09;利于我们的开发&#xff0c;而不同组件直…

【QT入门】 Qt实现自定义信号

往期回顾&#xff1a; 【QT入门】图片查看软件(优化)-CSDN博客 【QT入门】 lambda表达式(函数)详解-CSDN博客 【QT入门】 Qt槽函数五种常用写法介绍-CSDN博客 【QT入门】 Qt实现自定义信号 一、为什么需要自定义信号 比如说现在一个小需求&#xff0c;我们想要实现跨ui通信&a…