589. N 叉樹的前序遍歷
阿新 • • 發佈:2021-12-20
給定一個 N 叉樹,返回其節點值的 前序遍歷 。
N 叉樹 在輸入中按層序遍歷進行序列化表示,每組子節點由空值 null 分隔(請參見示例)。
進階:
遞迴法很簡單,你可以使用迭代法完成此題嗎?
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Stack; class Solution { public List<Integer> preorder(Node root) { if (root == null) { return Collections.emptyList(); } List<Integer> ret = new ArrayList<>(); Stack<Node> stack = new Stack<>(); stack.push(root); while (!stack.isEmpty()) { Node pop = stack.pop(); ret.add(pop.val); List<Node> children = pop.children == null ? Collections.emptyList() : pop.children; for (int i = children.size() - 1; i >= 0; --i) { stack.push(children.get(i)); } } return ret; } } 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; } };