层次遍历二叉树

二叉树的层次遍历顺序为:依次从上到下,从左到右遍历二叉树的节点
输入、输出描述
输入:
给定一个二叉树的根节点
输出:
返回层次遍历二叉树节点序列对应的”data"属性列表
Example
输入:
二叉树如下:
    1
   / \
   2  3
  /  / \
  4  5  6
输出:
[1,2,3,4,5,6]
代码:
import java.util.*;

public class Main {

    /**
    //该段代码仅用于调试,提交时请注释该段代码
    class TreeNode<T> {

        public T data;

        public TreeNode<T> left;

        public TreeNode<T> right;
    }
 */ 

 public int[] solution(TreeNode<Integer> root) {
	if(root ==null){
		
		return null;
	}
	 List<Integer> list = new ArrayList<>();
	 
	Queue<TreeNode<Integer>> q = new LinkedList<>();
	TreeNode<Integer>p=root;
	q.add(p);
	while (q.isEmpty() == false)
	{	
		p=q.poll();
		list.add(p.data);
		if (p.left != null)
		{
			q.add(p.left);
		}
		if (p.right != null)
		{
			q.add(p.right);
		}
	}
	int[] a = new int[list.size()];
	for (int i = 0; i < a.length; i++) {
       a[i] = list.get(i);
	}

    return a;
}
}
一个创业中的苦逼程序员
评论专区

隐藏