JZ22--- 위에서 아래로 두 갈래 트리 인쇄

4163 단어 검지offer
제목은 위에서 아래로 두 갈래 나무의 모든 노드를 출력하고 같은 층의 노드는 왼쪽에서 오른쪽으로 출력합니다.
문제: 문제를 분석하면 층차적으로 훑어본다.대열이 필요합니다.(1) 루트 결점이 대기열에 들어간다 (2) 대기열이 비어 있지 않을 때 루트 결점이 대기열을 나가고 그 값을list에 저장한다 (3) 이때 결점에 좌우 아이가 있으면 각각 좌우 아이를 대기열에 넣는다
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
    ArrayList<Integer> list = new ArrayList<> ();
    Queue<TreeNode> queue = new LinkedList<> ();
    if(root == null){
        return list;
    }
    
    queue.offer (root);
    while(!queue.isEmpty ()){
        TreeNode node = queue.poll ();
        list.add (node.val);
        if(node.left != null){
            queue.offer (node.left);
        }
        if(node.right != null){
            queue.offer (node.right);
        }
    }
    return list;
}

좋은 웹페이지 즐겨찾기