102-二叉树的层序遍历

/**
 * 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) {
        vector <vector <int>> result;
        // 如果根节点是空,直接结束
        if (!root) {
            return result;
        }
        result = bfs(root);
        return result;
    }

    vector<vector<int>> bfs(TreeNode* node){
        vector<vector<int>> result;
        queue <TreeNode*> q;
        q.push(node);   // 先将根节点放入队列
        while (!q.empty()) {
            int curr_size = q.size();   // 当前层所有节点的总数量
            vector<int> curr_level;     // 存放当前层所有节点的val
            for (int i = 0; i < curr_size; ++i) {   // 循环遍历当前level的所有节点
                TreeNode* node = q.front();
                q.pop();
                curr_level.push_back(node->val);
                if (node->left){
                    q.push(node->left); // 将当前节点的左子节点放入队列
                }
                if (node->right){
                    q.push(node->right);    // 将当前节点的右子节点放入队列
                }
            }
            result.push_back(curr_level);   // 将当前层所有节点放入result     
        }
        return result;
    }
};

1047-删除字符串中的所有相邻重复项

class Solution {
public:
    string removeDuplicates(string s) {
        string stk;
        for(char c : s){
            if(!stk.empty() && c == stk.back()){
                stk.pop_back();
            }else{
                stk.push_back(c);
            }
        }
        return stk;
    }
};

105-从前序与中序遍历序列构造二叉树

107-二叉树的层序遍历II

108-将有序数组转换为二叉搜索树

112-路径总和(判断路径和是否等于一个数)

118-杨辉三角

1190-反转每对括号间的子串

11-盛最多水的容器

125-验证回文串

144-二叉树的前序遍历

145-二叉树的后序遍历

14-最长公共前缀

150-逆波兰表达式求值

155-最小栈

179-最大数

198-打家劫舍

1-两数之和

200.岛屿数量

213-打家劫舍II

217-存在重复元素

219-存在重复元素II

222-完全二叉树的节点个数

225-用队列实现栈

226-翻转二叉树

230-二叉搜索树中第K小的元素

24-两两交换链表中的节点

255.验证前序遍历序列二叉搜索树

257-二叉树的所有路径

26-删除有序数组中的重复项

27-移除元素

283-移动零

28-实现strStr()

2-两数相加

300-最长递增子序列

328-奇偶链表

344-反转字符串

350-两个数组的交集II

394-字符串解码3[a2[c]]->“accaccacc”

402-移掉K位数字

404-左叶子之和

409-最长回文串

40-组合总和II

424-替换后的最长重复字符

426-将二叉搜索树转化为排序的双向链表

450-删除二叉搜索树中的节点

456-132模式

46-全排列

496-下一个更大元素I

49-字母异位词分组

501-二叉搜索树中的众数

530.二叉搜索树的最小绝对差

538-把二叉搜索树转换为累加树

572-另一个树的子树

617-合并二叉树

61-旋转链表

654-最大二叉树

669-修剪二叉搜索树

674-最长连续递增序列

690-员工的重要性

700-二叉搜索树中的搜索

704-二分查找

74-搜索二维矩阵

77-组合

81-搜索旋转排序数组II

83-删除排序链表中的重复元素

867-转置矩阵

88-合并两个有序数组

912-排序数组

92-反转链表II

94-二叉树的中序遍历

98-验证二叉搜索树

剑指Offer03.数组中重复的数字

剑指Offer04.二维数组中的查找

剑指Offer05.替换空格

剑指Offer06.从尾到头打印链表

剑指Offer10-II.青蛙跳台阶问题

剑指Offer11.旋转数组的最小数字

剑指Offer14-I.剪绳子

剑指Offer16.数值的整数次方

剑指Offer18.删除链表的节点

剑指Offer21.调整数组顺序使奇数位于偶数前面

剑指Offer22.链表中倒数第k个节点

剑指Offer25.合并两个排序的链表

剑指Offer27.二叉树的镜像

剑指Offer28.对称的二叉树

剑指Offer30.包含min函数的栈

剑指Offer31.栈的压入、弹出序列

剑指Offer32-I.从上到下打印二叉树

剑指Offer32-II.从上到下打印二叉树II

剑指Offer32-III.从上到下打印二叉树III

剑指Offer33.二叉搜索树的后序遍历序列

剑指Offer34.二叉树中和为某一值的路径

剑指Offer35.复杂链表的复制

剑指Offer38.字符串的排列

剑指Offer39.数组中出现次数超过一半的数字

剑指Offer40.最小的k个数

剑指Offer42.连续子数组的最大和

剑指Offer45.把数组排成最小的数

剑指Offer47.礼物的最大价值

剑指Offer50.第一个只出现一次的字符

剑指Offer52.两个链表的第一个公共节点

剑指Offer53-I.在排序数组中查找数字I(二分查找)

剑指Offer54.二叉搜索树的第k大节点

剑指Offer55-I.二叉树的深度

剑指Offer55-II.平衡二叉树

剑指Offer57.和为s的两个数字

剑指Offer57-II.和为s的连续正数序列

剑指Offer58-II.左旋转字符串

剑指Offer63.股票的最大利润

剑指OfferII027.回文链表

剑指OfferII038.每日温度

剑指OfferII046.二叉树的右侧视图

剑指OfferII079.所有子集

剑指OfferII095.最长公共子序列

剑指OfferII098.路径的数目

剑指OfferII099.最小路径之和

剑指OfferII100.三角形中最小路径之和

剑指OfferII105.岛屿的最大面积

面试题01.01.判定字符是否唯一

面试题01.02.判定是否互为字符重排

面试题01.04.回文排列

面试题01.08.零矩阵

面试题02.03.删除中间节点

面试题04.03.特定深度节点链表

面试题04.06.后继者

面试题08.01.三步问题

100-相同的树

106-从中序与后序遍历序列构造二叉树

109-有序链表转换二叉搜索树(找中间节点)

111-二叉树的最小深度

141-环形链表

147-对链表进行插入排序

162-寻找峰值

189-轮转数组

20-有效的括号

216-组合总和III

227-基本计算器II

287-寻找重复数

316-去除重复字母

337-打家劫舍III

33-搜索旋转排序数组

347-前K个高频元素

349-两个数组的交集

392-判断子序列

39-组合总和

437-路径总和III

47-全排列II

48-旋转图像

503-下一个更大元素II

513-找树左下角的值

543-二叉树的直径

63-不同路径II

687-最长同值路径

718-最长重复子数组

72-编辑距离

80-删除有序数组中的重复项II

82-删除排序链表中的重复元素II

86-分隔链表

876-链表的中间结点

90-子集II

剑指Offer09.用两个栈实现队列

剑指Offer10-I.斐波那契数列

剑指Offer12.矩阵中的路径

剑指Offer13.机器人的运动范围

剑指Offer24.反转链表

剑指Offer26.树的子结构

剑指Offer29.顺时针打印矩阵

剑指Offer36.二叉搜索树与双向链表

剑指Offer46.把数字翻译成字符串

剑指Offer48.最长不含重复字符的子字符串

剑指Offer49.丑数

剑指Offer51.数组中的逆序对

剑指Offer53-II.0~n-1中缺失的数字

剑指Offer58-I.翻转单词顺序

剑指Offer59-II.队列的最大值

剑指Offer66.构建乘积数组

剑指Offer68-I.二叉搜索树的最近公共祖先

剑指Offer68-II.二叉树的最近公共祖先

剑指OfferII007.数组中和为0的三个数

剑指OfferII021.删除链表的倒数第n个结点

剑指OfferII022.链表中环的入口节点

剑指OfferII025.链表中的两数相加

剑指OfferII068.查找插入位置

剑指OfferII072.求平方根

剑指OfferII074.合并区间

剑指OfferII076.数组中的第k大的数字(TopK问题)

剑指OfferII077.链表排序

剑指OfferII085.生成匹配的括号

剑指OfferII088.爬楼梯的最少成本

剑指OfferII119.最长连续序列

面试题01.05.一次编辑

面试题01.09.字符串轮转

面试题08.10.颜色填充

面试题10.03.搜索旋转数组

面试题16.06.最小差

面试题16.19.水域大小

面试题16.24.数对和(两数之和)

152.乘积最大子数组

16-最接近的三数之和

209-长度最小的子数组

386-字典序排数

59-螺旋矩阵 II

701-二叉搜索树中的插入操作

763-划分字母区间

剑指OfferII026.重排链表

剑指OfferII086.分割回文子字符串

面试题01.06.字符串压缩

面试题02.01.移除重复节点

面试题03.05.栈排序




剑指OfferII001.整数除法

剑指OfferII002.二进制加法

剑指OfferII003.前n个数字二进制中1的个数

剑指OfferII004.只出现一次的数字

剑指OfferII005.单词长度的最大乘积

剑指OfferII006.排序数组中两个数字之和

剑指OfferII008.和大于等于target的最短子数组

剑指OfferII009.乘积小于K的子数组

剑指OfferII010.和为k的子数组

剑指OfferII011.0和1个数相同的子数组

剑指OfferII012.左右两边子数组的和相等

剑指OfferII013.二维子矩阵的和

剑指OfferII014.字符串中的变位词

剑指OfferII015.字符串中的所有变位词

剑指OfferII017.含有所有字符的最短字符串

剑指OfferII018.有效的回文

剑指OfferII019.最多删除一个字符得到回文

剑指OfferII020.回文子字符串的个数

剑指OfferII023.两个链表的第一个重合节点

剑指OfferII028.展平多级双向链表

剑指OfferII029.排序的循环链表

剑指OfferII030.插入、删除和随机访问都是O(1)的容器

剑指OfferII031.最近最少使用缓存

剑指OfferII032.有效的变位词

剑指OfferII033.变位词组

剑指OfferII034.外星语言是否排序

剑指OfferII035.最小时间差

剑指OfferII036.后缀表达式

剑指OfferII037.小行星碰撞

剑指OfferII039.直方图最大矩形面积

剑指OfferII040.矩阵中最大的矩形

剑指OfferII041.滑动窗口的平均值

剑指OfferII042.最近请求次数

剑指OfferII043.往完全二叉树添加节点

剑指OfferII044.二叉树每层的最大值

剑指OfferII045.二叉树最底层最左边的值

剑指OfferII047.二叉树剪枝

剑指OfferII048.序列化与反序列化二叉树

剑指OfferII049.从根节点到叶节点的路径数字之和

剑指OfferII050.向下的路径节点之和

剑指OfferII051.节点之和最大的路径

剑指OfferII052.展平二叉搜索树

剑指OfferII053.二叉搜索树中的中序后继

剑指OfferII054.所有大于等于节点的值之和

剑指OfferII055.二叉搜索树迭代器

剑指OfferII056.二叉搜索树中两个节点之和

剑指OfferII057.值和下标之差都在给定的范围内

剑指OfferII058.日程表

剑指OfferII059.数据流的第K大数值

剑指OfferII060.出现频率最高的k个数字

剑指OfferII061.和最小的k个数对

剑指OfferII062.实现前缀树

剑指OfferII063.替换单词

剑指OfferII064.神奇的字典

剑指OfferII065.最短的单词编码

剑指OfferII066.单词之和

剑指OfferII067.最大的异或

剑指OfferII069.山峰数组的顶部

剑指OfferII070.排序数组中只出现一次的数字

剑指OfferII071.按权重生成随机数

剑指OfferII073.狒狒吃香蕉

剑指OfferII075.数组相对排序

剑指OfferII078.合并排序链表

剑指OfferII080.含有k个元素的组合

剑指OfferII081.允许重复选择元素的组合

剑指OfferII082.含有重复元素集合的组合

剑指OfferII083.没有重复元素集合的全排列

剑指OfferII084.含有重复元素集合的全排列

剑指OfferII087.复原IP

剑指OfferII091.粉刷房子

剑指OfferII092.翻转字符

剑指OfferII093.最长斐波那契数列

剑指OfferII094.最少回文分割

剑指OfferII096.字符串交织

剑指OfferII097.子序列的数目

剑指OfferII101.分割等和子集

剑指OfferII102.加减的目标值

剑指OfferII103.最少的硬币数目

剑指OfferII104.排列的数目

剑指OfferII106.二分图

剑指OfferII107.矩阵中的距离

剑指OfferII108.单词演变

剑指OfferII109.开密码锁

剑指OfferII110.所有路径

剑指OfferII111.计算除法

剑指OfferII112.最长递增路径

剑指OfferII113.课程顺序

剑指OfferII114.外星文字典

剑指OfferII115.重建序列

剑指OfferII116.朋友圈

剑指OfferII117.相似的字符串

剑指OfferII118.多余的边

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐