20.二叉树的层序遍历

package java2019;

import java.util.ArrayList;
import java.util.LinkedList;
//思路是用ArrayList模拟一个队列
//二叉树的层序遍历
public class Demo20 {
	public ArrayList<Integer> PrinntFromTopBottom(TreeNode root){
		ArrayList<Integer> list = new ArrayList<Integer>();
		LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
		if(root == null)
			return list;
		queue.add(root);
		while(queue.size()!=0){
			TreeNode temp = queue.remove(0);//模拟队列弹出元素
			if(temp.left!=null){
				queue.add(temp.left);
			}
			if(temp.right!=null){
				queue.add(temp.right);
			}
			list.add(temp.val);
		}
		return list;
	}
public static void main(String[] args) {
	TreeNode root = new TreeNode(1);
	TreeNode n1 = new TreeNode(2);
	TreeNode n2 = new TreeNode(3);
	TreeNode n3 = new TreeNode(4);
	TreeNode n4 = new TreeNode(5);
    root.left=n1;
    root.right=n2;
    n2.left=n3;
    n1.right=n4;
    Demo20 d20 = new Demo20();
    ArrayList<Integer> list = d20.PrinntFromTopBottom(root);
    for(int i=0;i<list.size();i++){
    	System.out.println(list.get(i));
    }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值