import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return string字符串一维数组
*/
public String[] levelOrder (TreeNode root) {
// write code here
if(root==null){
return new String[]{};
}
LinkedList<TreeNode> queue = new LinkedList<>();
queue.add(root);
StringBuffer stringBuffer = new StringBuffer();
while (!queue.isEmpty()) {
int size = queue.size();
int index = 0;
while (index < size) {
TreeNode node = queue.removeFirst();
stringBuffer.append(node.val);
index++;
if(node.left!=null){
queue.addLast(node.left);
}
if(node.right!=null){
queue.addLast(node.right);
}
}
stringBuffer.append(',');
}
return stringBuffer.toString().split(",");
}
}
本题所考查的知识点为二叉树的层序遍历,所用语言为java.
二叉树的层序遍历常借助于队列来实现,队列的特性为先进先出。我们将二叉树的结点加入队列尾部,弹出结点从队列头部,使得二叉树正确的进行层序遍历,java队列的实现常用LinkedList,java没有队列的封装只能使用LinkedList来作为队列的实现。

京公网安备 11010502036488号