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 + "";
}
}
二叉树的层次遍历