leetcode-107 두 갈래 나무의 차원 반복 II JAVA 코드

1609 단어 leetcode
두 갈래 나무를 정해서 노드 값이 밑에서 위로 올라가는 차원을 되돌려줍니다.(즉, 잎 노드가 있는 층에서 뿌리 노드가 있는 층으로 한 층씩 왼쪽에서 오른쪽으로 옮겨간다)
예를 들어 두 갈래 나무[3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7

아래에서 위로 올라가는 단계를 다음과 같이 되돌려줍니다.
[
  [15,7],
  [9,20],
  [3]
]

해법1
class Solution {
    public List> levelOrderBottom(TreeNode root) {
        
        List> result = new LinkedList>();
        List temList = new ArrayList();
        if (root == null) {
            return result;
        }
        Queue queue = new LinkedList();
        ((LinkedList) queue).add(root);
        int num = 1;
        int next = 0;
        while (!queue.isEmpty()) {
            TreeNode now = queue.poll();
            temList.add(now.val);
            num--;
            if (now.left != null) {
                ((LinkedList) queue).add(now.left);
                next++;
            }
            if (now.right != null) {
                ((LinkedList) queue).add(now.right);
                next++;
            }
            if (num == 0) {
                num = next;
                next = 0;
                ((LinkedList>) result).addFirst(temList);
                temList = new ArrayList();
            }
        }
        return result;
    
    }
}

result List는 ArrayList에서 LinkedList로 변경되었습니다. 이렇게 하면 머리에 추가하는 방법을 사용할 수 있습니다.

좋은 웹페이지 즐겨찾기