LeetCode:N叉树的前序遍历【589】
LeetCode:N叉树的前序遍历【589】
题目描述
给定一个 N 叉树,返回其节点值的前序遍历。
例如,给定一个 3叉树
:
返回其前序遍历: [1,3,5,6,2,4]
。
题目分析
使用栈结构。处于栈顶的是根元素,然后逆序加入其子元素,这样处于栈顶的就是其左子节点,处于栈低的是其右子节点。然后出栈打印即可。
Java题解
/* // Definition for a Node. 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) { Stack<Node> stack = new Stack<>(); List<Integer> ans = new ArrayList<>(); if(root==null) return ans; stack.push(root); while (!stack.isEmpty()) { Node node = stack.pop(); ans.add(node.val); for(int i= node.children.size()-1;i>=0;i--) stack.push(node.children.get(i)); } return ans ; } }