검 지 offer --- 위 에서 아래로 이 진 트 리 인쇄

7298 단어 알고리즘
구유
데이터 구조 와 관련 된 문 제 는 아직 좀 생소 하 니, 아무래도 시간 을 내 서 데이터 구조의 책 을 다시 한 번 복습 해 야 할 것 같다.
제목 설명
위 에서 아래로 이 진 트 리 의 모든 노드 를 인쇄 하고 같은 층 의 노드 는 왼쪽 에서 오른쪽으로 인쇄 합 니 다.
사고의 방향
이 문 제 는 실제 적 으로 이 진 트 리 의 층 차 를 옮 겨 다 니 는 것 이다. 문 제 를 추상 적 으로 풀 면 대열 의 문제 이다. 먼저 뿌리 노드 를 대열 에 넣 고 값 을 인쇄 한 다음 에 뿌리 노드 의 왼쪽 서브 트 리, 오른쪽 서브 트 리 를 순서대로 들 어가 서 나 무 를 다 옮 겨 다 닐 때 까지 인쇄 한다.
코드
import java.util.ArrayList; 		//        ,            
import java.util.LinkedList;
import java.util.Queue;

public class leetcode_22 {
    public static void main(String[] args) {

    }
     public class TreeNode {
     int val = 0;
     TreeNode left = null;
     TreeNode right = null;

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

     }

     public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
         Queue<TreeNode> queue = new LinkedList<>();		//  ,   ,  Queue     
         ArrayList<Integer> result = new ArrayList<>();		//      
         if (root == null){
             return result;
         }

         queue.offer(root);		//        

         while (!queue.isEmpty()){		//             
             TreeNode tmpNode = queue.poll();		//    
             result.add(tmpNode.val);
             if (tmpNode.left != null){		//        
                 queue.offer(tmpNode.left);
             }
             if (tmpNode.right != null){	//        
                 queue.offer(tmpNode.right);
             }
         }
         return result;
      }

 }


}

좋은 웹페이지 즐겨찾기