1 Star 0 Fork 0

MetaverseMobile/leetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
589. N叉树的前序遍历_MyMethod.cpp 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
TieNan2019 提交于 2021-02-26 13:50 +08:00 . Update 589. N叉树的前序遍历_MyMethod.cpp
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> preorder(Node* root) {
if (root == nullptr)
return {};
vector<int> ans;
Node *node = root;
stack<Node *> s;
s.push(root);
stack<int> sidx;
sidx.push(0);
/* 首先要在这里处理根节点 */
ans.push_back(root->val);
int cnt = 0;
while (!s.empty()) {
if (cnt < s.top()->children.size()) {
node = s.top()->children[cnt];
/* 先序遍历发生在此处 */
ans.push_back(node->val);
s.push(node);
sidx.push(cnt);
cnt = 0;
}
else {
s.pop();
cnt = sidx.top() + 1;
sidx.pop();
}
}
return ans;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/MetaverseMobile/leetcode.git
[email protected]:MetaverseMobile/leetcode.git
MetaverseMobile
leetcode
leetcode
main

搜索帮助