Level 1 (day 6)
第一题
题目链接:https://leetcode.cn/problems/n-ary-tree-preorder-traversal/
个人题解:DFS
代码:
class Solution {
public:
vector<int> res;
vector<int> preorder(Node* root) {
dfs(root);
return res;
}
void dfs(Node* root)
{
if(!root) return;
res.push_back(root->val);
for(auto& child:root->children) dfs(child);
}
};
第二题
题目链接:https://leetcode.cn/problems/binary-tree-level-order-traversal/
个人题解:经典BFS
代码:
class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
vector<vector<int>> res;
if(!root) return {};
queue<TreeNode*> q;
q.push(root);
while(!q.empty()){
int n=q.size();
res.push_back(vector<int>());
for(int i=1;i<=n;i++){
auto t=q.front();
q.pop();
res.back().push_back(t->val);
if(t->left) q.push(t->left);
if(t->right) q.push(t->right);
}
}
return res;
}
};