[자바 면접 문제] 이 진 트 리 를 위 에서 아래로 인쇄 합 니 다.

6025 단어 Java
【 문 제 】: 위 에서 아래로 이 진 트 리 의 모든 노드 를 인쇄 하고 같은 층 의 노드 는 왼쪽 에서 오른쪽으로 인쇄 합 니 다.
[사고]: 문제 중의 요구 순 서 는 다음 과 같다. 、 、 트 리 노드 를 대기 열 에 저장 하고 대기 열 의 특징 에 따라 대기 열의 입 열 순 서 를 제어 하면 됩 니 다.
[포인트]: 대열, 나무
【Java】:
import java.util.ArrayList;
import java.util.LinkedList;//  
import java.util.Queue;//  
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
        ArrayList<Integer> arrayList = new ArrayList<Integer>();
        if (root==null){
            return arrayList;
        }
        Queue<TreeNode> queue = new LinkedList<TreeNode>();//  :    
        //       ,       ,          : 、  、  
        queue.offer(root);// :add() remove()             (   ),offer  
        while (!queue.isEmpty()){
            TreeNode node= queue.poll();//       ;poll()       ,       
            arrayList.add(node.val);//      
            if (node.left!=null){
                queue.offer(node.left);// 
            }
            if (node.right!=null){
                queue.offer(node.right);// 
            }
        }
        return arrayList;
    }
}

좋은 웹페이지 즐겨찾기