LeetCode 589. N叉树的前序遍历(N-ary Tree Preorder Traversal)
2024-08-26 23:55:28
589. N叉树的前序遍历
589. N-ary Tree Preorder Traversal
LeetCode589. N-ary Tree Preorder Traversal
题目描述
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3 叉树 :
返回其前序遍历: [1,3,5,6,2,4]。
说明: 递归法很简单,你可以使用迭代法完成此题吗?
Java 实现
Iterative Solution
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
class Node {
public int val;
public List<Node> children;
public Node() {
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
}
class Solution {
public List<Integer> preorder(Node root) {
List<Integer> result = new LinkedList<>();
if (root == null) {
return result;
}
Stack<Node> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
Node node = stack.pop();
if (node.children != null) {
for (int i = node.children.size() - 1; i >= 0; i--) {
stack.push(node.children.get(i));
}
}
result.add(node.val);
}
return result;
}
}
Recursive Solution
import java.util.LinkedList;
import java.util.List;
class Node {
public int val;
public List<Node> children;
public Node() {
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
}
class Solution {
List<Integer> result = new LinkedList<>();
public List<Integer> preorder(Node root) {
if (root == null) {
return result;
}
result.add(root.val);
List<Node> node = root.children;
for (int i = 0; i < node.size(); i++) {
preorder(node.get(i));
}
return result;
}
}
相似题目
参考资料
- https://leetcode.com/problems/n-ary-tree-preorder-traversal/
- https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/
最新文章
- 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入
- marked.js简易手册
- java的数据类型转换
- 设置时间&;时区
- POI 设置
- lucene和ElasticSearch基本概念
- 关于rails里集成测试assert_template的写法
- [UML]UML之开篇
- 修改BASH的配色
- CSS布局模型思考
- 前端要怎么学createjs!!!???
- Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发
- POJ 1236 Network of Schools (tarjan算法+缩点)
- 极光推送(C#)
- Constructor >;>; @Autowired >;>; @PostConstruct
- BZOJ.4515.[SDOI2016]游戏(树链剖分 李超线段树)
- IntelliJ IDEA 自动导入包 快捷方式 关闭重复代码提示
- python -c 处理shell字符串
- Zookeeper--Watcher 和 ACL
- Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置
热门文章
- [golang]golang如何覆盖输出console,实现进度条;golang一个骚气的进度提示库
- 44个Java性能优化
- Shell编程——脚本编写思路与过程
- elasticsearch type类型创建时注意项目,最新的elasticsearch已经不建议一个索引下多个type
- IntelliJ IDEA配置Tomcat运行web项目
- #C++初学记录(遍历)
- 时间控件My97DatePicker事件监听及用法
- postgresql 增量备份
- Audit(二)--清理Audit数据
- [教程] Packt - Create a Game Environment with Blender and Unity by Darrin Lile