摘要: title: 二叉树的右侧视图 📃 题目描述 题目链接:二叉树的右侧视图、相同题目 🔔 解题思路 方法一:队列层次遍历(bfs) class Solution { public: vector<int> rightSideView(TreeNode* root) { vector<int> re 阅读全文
posted @ 2022-05-11 23:02 D-booker 阅读(40) 评论(0) 推荐(0) 编辑
摘要: title: 二叉树最底层最左边的值 📃 题目描述 题目链接:二叉树最底层最左边的值 、相同的题目 🔔 解题思路 方法一:采用队列进行层次遍历,每次将每层的第一个值放保存在答案,遍历完该二叉树,那必然就是最底层最左边的节点; 方法二:方法一中的需要消耗o(n)的空间,想一下,有没有不需要消耗这个 阅读全文
posted @ 2022-05-11 21:57 D-booker 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 📕线程传参详解 一、传递临时对象作为线程参数 1.1要避免的陷阱 直接看代码: #include <iostream> #include <thread> using namespace std; void myPrint(const int &i, char* pmybuf) { //如果线程从 阅读全文
posted @ 2022-05-11 17:37 D-booker 阅读(792) 评论(2) 推荐(1) 编辑
摘要: 📕线程启动、结束、创建方法 一、线程启动的开始 程序运行起来:生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕 主线程从main()开始执行;那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,线程也结束运行; 整个进 阅读全文
posted @ 2022-05-11 17:14 D-booker 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 📕并发基本概念以及实现、进程、线程基本概念 一、并发、进程、线程的基本概念和综述 这些详细概念具体去看os笔记; 1.1 并发 两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务; 以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒 阅读全文
posted @ 2022-05-11 17:00 D-booker 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 多态和虚函数 多态和虚函数的快速认知 相信看完上个笔记应该知道:通过基类指针只能访问派生类的成员变量,但是不能访问派生类的成员函数,因为调用函数是通过对象类型去调用的,而不是通过指针; 例子: #include <iostream> using namespace std; //基类People c 阅读全文
posted @ 2022-05-11 10:01 D-booker 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 恢复内容开始 title: 往完全二叉树添加节点 📃 题目描述 题目链接:往完全二叉树添加节点 🔔 解题思路 方法一:空间换时间的思想,采用层次遍历,遍历到第一个可插入 节点的 父节点,证明后续的节点都是可以作为父节点插入数据的,保存在队列中,如图: 节点3就是可插入数据的第一个节点,节点6就是 阅读全文
posted @ 2022-05-11 00:27 D-booker 阅读(69) 评论(0) 推荐(0) 编辑