매일 한 문제씩 Leet Code [52일차]

1159 단어
T102. Binary Tree Level Order Traversal【Medium】

제목


두 갈래 나무를 주고,
두 갈래 나무를 정해서 노드의 값을 순서대로 되돌려줍니다.왼쪽에서 오른쪽으로 한 단계씩 돌아갑니다.
예:
두 갈래 나무 제시 [3,9,20,null,null,15,7]
    3
   / \
  9  20
    /  \
   15   7

반환:
[
  [3],
  [9,20],
  [15,7]
]

생각


일반적으로 사고방식은 하나의 BFS로 추가하면 된다.그런데 하하, DFS를 쓰는 사람을 발견했어. 응, 생각이 있어.
차이점은 DFS에 level을 표시하고 level에 따라 추가하면 됩니다.

코드


코드는 Top Solution에서 가져옵니다.
public List> levelOrder(TreeNode root) {
        // 
        List> res = new ArrayList>();
        levelHelper(res, root, 0);
        return res;
    }
    
    public void levelHelper(List> res, TreeNode root, int height) {
        // null 
        if (root == null) return;
        // ArrayList
        if (height >= res.size()) {
            res.add(new ArrayList());
        }
        // val
        res.get(height).add(root.val);
        // 
        levelHelper(res, root.left, height+1);
        levelHelper(res, root.right, height+1);
    }

좋은 웹페이지 즐겨찾기