589:N 叉树的前序遍历

This commit is contained in:
轩辕龙儿 2022-03-10 09:29:47 +08:00
parent 9f22a5b06f
commit 1d45b6e7d6
2 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,93 @@
//给定一个 n 叉树的根节点 root 返回 其节点值的 前序遍历
//
// n 叉树 在输入中按层序遍历进行序列化表示每组子节点由空值 null 分隔请参见示例
//
//
//示例 1
//
//
//
//
//输入root = [1,null,3,2,4,null,5,6]
//输出[1,3,5,6,2,4]
//
//
// 示例 2
//
//
//
//
//输入root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,
//null,13,null,null,14]
//输出[1,2,3,6,7,11,14,4,8,12,5,9,13,10]
//
//
//
//
// 提示
//
//
// 节点总数在范围 [0, 10]
// 0 <= Node.val <= 10
// n 叉树的高度小于或等于 1000
//
//
//
//
// 进阶递归法很简单你可以使用迭代法完成此题吗?
// Related Topics 深度优先搜索 👍 226 👎 0
package leetcode.editor.cn;
import com.code.leet.entiy.Node;
import java.util.ArrayList;
import java.util.List;
//589:N 叉树的前序遍历
public class NAryTreePreorderTraversal {
public static void main(String[] args) {
Solution solution = new NAryTreePreorderTraversal().new Solution();
// TO TEST
}
//leetcode submit region begin(Prohibit modification and deletion)
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> preorder(Node root) {
dfs(root);
return list;
}
void dfs(Node root) {
if (root == null) {
return;
}
list.add(root.val);
for (Node node : root.children) {
dfs(node);
}
}
}
//leetcode submit region end(Prohibit modification and deletion)
}

View File

@ -0,0 +1,37 @@
<p>给定一个 n&nbsp;叉树的根节点 <meta charset="UTF-8" />&nbsp;<code>root</code>&nbsp;,返回 <em>其节点值的<strong> 前序遍历</strong></em></p>
<p>n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 <code>null</code> 分隔(请参见示例)。</p>
<p><br />
<strong>示例 1</strong></p>
<p><img src="https://assets.leetcode.com/uploads/2018/10/12/narytreeexample.png" style="height: 193px; width: 300px;" /></p>
<pre>
<strong>输入:</strong>root = [1,null,3,2,4,null,5,6]
<strong>输出:</strong>[1,3,5,6,2,4]
</pre>
<p><strong>示例 2</strong></p>
<p><img alt="" src="https://assets.leetcode.com/uploads/2019/11/08/sample_4_964.png" style="height: 272px; width: 300px;" /></p>
<pre>
<strong>输入:</strong>root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
<strong>输出:</strong>[1,2,3,6,7,11,14,4,8,12,5,9,13,10]
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li>节点总数在范围<meta charset="UTF-8" />&nbsp;<code>[0, 10<sup>4</sup>]</code></li>
<li><code>0 &lt;= Node.val &lt;= 10<sup>4</sup></code></li>
<li>n 叉树的高度小于或等于 <code>1000</code></li>
</ul>
<p>&nbsp;</p>
<p><strong>进阶:</strong>递归法很简单,你可以使用迭代法完成此题吗?</p>
<div><div>Related Topics</div><div><li></li><li></li><li>深度优先搜索</li></div></div><br><div><li>👍 226</li><li>👎 0</li></div>