韩国网站,安徽平台网站建设找哪家,昆明网建,泉州网站建站推广#x1f680; 算法题 #x1f680; #x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 #x1f340; #x1f332; 越难的东西,越要努力坚持#xff0c;因为它具有很高的价值#xff0c;算法就是这样✨ #x1f332; 作者简介#xff1a;硕风和炜#xff0c;… 算法题 算法刷题专栏 | 面试必备算法 | 面试高频算法 越难的东西,越要努力坚持因为它具有很高的价值算法就是这样✨ 作者简介硕风和炜CSDN-Java领域优质创作者保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享 恭喜你发现一枚宝藏博主,赶快收入囊中吧 人生如棋我愿为卒行动虽慢可谁曾见我后退一步 算法题 目录 题目链接⛲ 题目描述 求解思路实现代码运行结果⚡ DFS 求解思路 实现代码 运行结果 共勉 题目链接
589. N 叉树的前序遍历
⛲ 题目描述
给定一个 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, 104]内 0 Node.val 104 n 叉树的高度小于或等于 1000 求解思路实现代码运行结果 ⚡ DFS 求解思路
该题目就是二叉树前序遍历的变种只不过该题目是多叉树多加一个迭代的过程即可。有了基本的思路接下来我们就来通过代码来实现一下递归和迭代的解法。 实现代码
/*
// Definition for a Node.
class Node {public int val;public ListNode children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, ListNode _children) {val _val;children _children;}
};
*/
// 递归
class Solution {private ListInteger list new ArrayList();public ListInteger preorder(Node root) {dfs(root);return list;}public void dfs(Node root) {if (root null)return;list.add(root.val);for (Node node : root.children) {dfs(node);}}
}// 迭代:通过栈来模拟先进后出的特性
class Solution {public ListInteger preorder(Node root) {ListInteger res new ArrayList();if (root null) {return res;}DequeNode stack new ArrayDequeNode();stack.push(root);while (!stack.isEmpty()) {Node node stack.pop();res.add(node.val);for (int i node.children.size() - 1; i 0; --i) {stack.push(node.children.get(i));}}return res;}
}运行结果 共勉
最后我想和大家分享一句一直激励我的座右铭希望可以与大家共勉