二叉树层次遍历

package leetcode;

import java.util.ArrayList;
import java.util.List;

import leetcode.TreeNode;

/**
 * 二叉树的层次遍历
 * @author gxl
 *
 */
public class LevelTraverseOfBinTree
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		TreeNode n1 = new TreeNode(1);
		TreeNode n2 = new TreeNode(2);
		TreeNode n3 = new TreeNode(3);
		TreeNode n4 = new TreeNode(4);
		TreeNode n5 = new TreeNode(5);
		TreeNode n6 = new TreeNode(6);
		TreeNode n7 = new TreeNode(7);
		TreeNode n8 = new TreeNode(8);
		TreeNode n9 = new TreeNode(9);
		n1.left = n2;
		n1.right = n3;
		n2.right = n5;
		n2.left = n9;
		n3.right = n4;
		n5.left = n6;
		n4.left = n7;
		n7.right = n8;
		traverse(n1);
	}

	private static void traverse(TreeNode n)
	{
		List<TreeNode> nodes = new ArrayList<TreeNode>();
		nodes.add(n);
		TreeNode t = null;
		while (!nodes.isEmpty())
		{
			t = nodes.remove(0);
			System.out.println(t.val);
			if (t.left != null)
			{
				nodes.add(t.left);
			}
			if (t.right != null)
			{
				nodes.add(t.right);
			}
		}
	}
}
package leetcode;

/**
 * https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
 * 
 * @author gxl
 *
 */
public class TreeNode
{
	int val;
	TreeNode left;
	TreeNode right;

	TreeNode(int x)
	{
		val = x;
	}

	public String toString()
	{
		return val + "";
	}
}

二叉树的层次遍历