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

代码随想录二刷Day 15

102. Binary Tree Level Order Traversal

vector<int>() it is basically constructor of std::vector class and will create a new empty vector.

You can also mention the size of required vector in brackets.

访问二维vector的元素: 如果指定外层和内层向量的大小,就可用operator[]进行读和写;如果只指定外层向量大小,就能用push_back()函数进行写,不能用operator[]进行读和写

下面这行不理解主要是因为不了解vector怎么使用,vector是可以自动变长度的数组当存心的元素进来的时候,但是没存进来的时候空的vector还是空的vector不能直接[]取后面的数,这时候就会越界,二维vector的水平方向可以一直加元素,竖直方向也可以一直加元素,但是加元素之前不能用operator取

if (result.size() == depth) result.push_back(vector<int>()); 
/*** 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:void tranversal(TreeNode* current, vector<vector<int>> &result, int depth) {if(current == NULL) return;if (result.size() == depth) result.push_back(vector<int>()); //这句话的意思是插入一行空的vectorresult[depth].push_back(current->val);tranversal(current-> left, result, depth+1);tranversal(current-> right, result, depth+1);}vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> result; //这一句没堆result定义是几行几列,在上面用result[depth]的时候无法直接用,因为depth一直在加一int depth = 0;tranversal(root, result, depth);return result;}
};

226. Invert Binary Tree

注意这里交换的是指针不是数值,指针的意思就是交换的时候下面的左右孩子跟着一起过去

The swap() function in C++, from the standard library, is a function that directly swaps values between two given variables of the same types. Let us look at the syntax for using the same: root->left 与root->right都是地址,所以我们这里swap()交换的也是地址

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if(root == NULL) return root;//swap(root->left->val, root->right->val);交换指针,就是节点之后的所有孩子都跟着一起交换swap(root->left, root->right);invertTree(root->left);invertTree(root->right);return root;}
};

101. 对称二叉树

看答案好理解,但是写不出来,需要分几类讨论各种情况

http://www.lryc.cn/news/172507.html

相关文章:

  • Node.js环境安装与服务设置,结合内网穿透随时随地公网访问!
  • 八、数据类型转换
  • 2023数学建模研赛华为杯E题思路-出血性脑卒中临床智能诊疗建模
  • Windows Server 2012 R2系统远程桌面的数字证书算法SHA1升级到SHA256
  • windows进程管理相关命令
  • Flutter快速入门学习(一)
  • 网站排名下降的原因和解决方法(SEO优化失误可能导致网站排名下降)
  • 爱看小说手机网源码全站带数据带自动采集程序/ThinkPHP内核小说网站源码+书库数据库带自动采集
  • 《Java8实战》
  • 【初阶数据结构】——堆排序和TopK问题
  • LLM - 大模型速递 InternLM-20B 快速入门
  • 探索AIGC人工智能(Midjourney篇)(四)
  • uni-app:跨页面传递数组
  • element 表格拖拽保存插件
  • 通过内网穿透,在Windows 10系统下搭建个人《我的世界》服务器公网联机
  • C++11异步任务轮子实现(header-only)
  • 2023华为杯研究生数学建模竞赛选题建议+初步分析
  • 多线程并发或线程安全问题如何解决
  • 深度学习——线性神经网络一
  • 利用大模型知识图谱技术,告别繁重文案,实现非结构化数据高效管理
  • Java抽象类和普通类区别、 数组跟List的区别
  • Leetcode.2522 将字符串分割成值不超过 K 的子字符串
  • 成绩分析(蓝桥杯)
  • 【多思路附源码持续更新】2023年华为杯(中国研究生数学建模)竞赛C题
  • 基于STM32设计的校园一卡通(设计配套的手机APP)
  • 有了Spring为什么还需要SpringBoot呢
  • 【记录】Python 之于 C/C++ 区别
  • 【Vue-Element-Admin】dialog关闭回调事件
  • Ansible自动化:简化你的运维任务
  • webpack配置alias后eslint和ts无法识别