vector<vector<int>> vec;
vec.push_back(vector<int>());
vec.back().push_back();
vec[n].push_back();
今天在刷leetcode题的时候见到如上三句代码,很有意思。
第一句创建了一个实体为vertor<int>的容器,可以理解为一个二维数组;
第二句话相当于分隔符了,往二维数组里插入空的vector<int>(),可以理解为分行,即二维数组的下一行;
第三句话是在最后一行里插入数据。
第四句话是在指定行插入数据。
EXAMPLE:leetcode 102. 二叉树的层序遍历 (递归法)
# 递归法
class Solution {
public:
void order(TreeNode* cur, vector<vector<int>>& result, int depth)
{
if (cur == nullptr) return;
if (result.size() == depth) result.push_back(vector<int>());
result[depth].push_back(cur->val);
order(cur->left, result, depth + 1);
order(cur->right, result, depth + 1);
}
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> result;
int depth = 0;
order(root, result, depth);
return result;
}
};
以二叉树的层序遍历为例:
输入:[3,9,20,null,null,15,7]
输出:
[
[3],
[9,20],
[15,7]
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)