[LeetCode] N-ary Tree Preorder Traversal

아르당·6일 전

LeetCode

목록 보기
126/136
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

n진 트리 root가 주어졌을 때, 해당 트리의 노드 값들에 대한 전위 순회 결과를 반환해라.

Example

#1

Input: root = [1, null, 3, 2, 4, null, 5, 6]
Output: [1, 3, 5, 6, 2, 4]

#2

Input: 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]
Output: [1, 2, 3, 6, 7, 11, 14, 4, 8, 12, 5, 9, 13, 10]

Constraints

  • 트리에 있는 노드의 수는 [0, 10^4] 범위에 있다.
  • 0 <= Node.val <= 10^4
  • n진 트리의 높이는 1000과 같거나 작다.

Solved

/*
// 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 {
    public List<Integer> preorder(Node root) {
        List<Integer> res = new ArrayList<>();

        dfs(root, res);

        return res;
    }

    private void dfs(Node node, List<Integer> res) {
        if (node == null) return;

        res.add(node.val);
        
        for (Node child : node.children) {
            dfs(child, res);
        }
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글