자바는 위에서 아래로 두 갈래 나무의 모든 노드를 출력하고 같은 층의 노드는 왼쪽에서 오른쪽으로 출력합니다.

1452 단어 검지offer
import java.util.ArrayList;

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

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

    }

}*/
/**
 *  , 。
 * 
 * @author pomay
 *
 */
public class Solution_cengcibianli
{
	//  
	public ArrayList PrintFromTopToBottom(TreeNode root)
	{
		ArrayList printList = new ArrayList();
		ArrayList list = new ArrayList();
		if (root == null)
			return printList;
		list.add(root);
		//  , , , 
		for (int i = 0; i < list.size(); i++)
		{
			TreeNode node = list.get(i);
			if (node.left != null)
			{
				list.add(node.left);
			}
			if (node.right != null)
			{
				list.add(node.right);
			}
			printList.add(node.val);
		}
		return printList;
	}

	public static void main(String[] args)
	{
		TreeNode root = new TreeNode(8);
		root.left = new TreeNode(6);
		root.right = new TreeNode(10);
		root.left.left = new TreeNode(5);
		root.left.right = new TreeNode(7);
		root.right.left = new TreeNode(9);
		root.right.right = new TreeNode(11);
		Solution_cengcibianli s = new Solution_cengcibianli();

		ArrayList printList = new ArrayList();
		printList = s.PrintFromTopToBottom(root);
		for (int i = 0; i < printList.size(); i++)
		{
			System.out.print(printList.get(i) + " ");
		}
	}

}

좋은 웹페이지 즐겨찾기