/* // 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; } }; */
classSolution{ List<Integer> result = new ArrayList<>();
public List<Integer> preorder(Node root){ if (root == null) return result; result.add(root.val); //遍历当前节点的所有孩子节点 for (int i = 0; i < root.children.size(); i++) { preorder(root.children.get(i)); } return result; } }
/* // 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; } }; */
classSolution{ List<Integer> result = new ArrayList<>();
public List<Integer> preorder(Node root){ if (root == null) return result; Deque<Node> deque = new ArrayDeque<>(); deque.add(root);
while (!deque.isEmpty()) { Node node = deque.pop(); result.add(node.val); //每次逆序入栈当前节点的所有孩子节点 Collections.reverse(node.children); for (Node child : node.children) { deque.push(child); } }