검지offer(37)의 위에서 아래로 두 갈래 나무를 인쇄하다

제목 설명
위에서 아래로 두 갈래 나무의 각 노드를 인쇄하고, 같은 층의 노드는 왼쪽에서 오른쪽으로 인쇄합니다.
사고방식 분석: 두 개의 LIST, 한 개의 저장 노드, 한 개의 저장 값을 사용합니다.먼저 루트 노드를 LIST에 추가한 다음 LIST의 요소를 훑어보고 훑어보는 과정에서 이 요소의 좌우 노드를 방문하고 좌우 하위 노드를 LIST에 추가합니다
<span style="font-family:SimSun;font-size:18px;color:#3333ff;">import java.util.ArrayList;
/**
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<TreeNode>  listNode=new ArrayList<TreeNode> ();
        ArrayList<Integer>  listVal=new ArrayList<Integer> ();
        if(root==null)
            return listVal;
        listNode.add(root);
        listVal.add(root.val);
        for(int i=0;i<listNode.size();i++){
          TreeNode node=  listNode.get(i);
            if(node.left!=null){
                listNode.add(node.left);
                listVal.add(node.left.val);
            }
            if(node.right!=null){
                listNode.add(node.right);
                  listVal.add(node.right.val);
            }      
        }        
        return listVal;
    }
}</span>

좋은 웹페이지 즐겨찾기