关闭

按层Z型遍历二叉树(算法)

210人阅读 评论(0) 收藏 举报
分类:

输入一个二叉树,Z字型输出每层二叉树节点。


public ArrayList <ArrayList<Integer>> zizaglevelOder(TreeNode root)
{
	ArrayList<ArrayList<Integer>> res  = new ArrayList<ArrayList<Integer>>();
	if(root == null)
		return res;
	LinkedList <TreeNode> currLevel = new LinkedList<TreeNode>();
	currLevel.add(root);
	boolean leftToRight = true;
	
	while(currLevel.size() > 0)
	{
		ArrayList<Integer> currList = new ArrayList<Integer>();
		LinkedList<TreeNode> nextLevel = new LinkedList <TreeNode>();
		while(currLevel.size() > 0)
		{
			TreeNode node = currLevel.poll();
			if(node.left != null)
				nextLevel.add(node.left);
			if(node.right != null)
				nextLevel.add(node.right);
			if(leftToRight)
				currList.add(node.val);	
			else
				currList.add(0,node.val);	
		}
		res.add(currList);	
		currLevel = nextLevel;
		leftToRight = !leftToRight;
	}
	return res;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:19879次
    • 积分:1100
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:7篇
    • 译文:48篇
    • 评论:1条
    文章分类
    最新评论