题解 | #牛群分层排列#

牛群分层排列

https://www.nowcoder.com/practice/7e98027a60424c9ba88d9c4c0506ede4

本题知识点分析:

  1. 二叉树的层序遍历
  2. 字符串的拼接

问题分析:

  1. 如果给定的根节点 root 为空,直接返回一个空的字符串数组。
  2. 先创建一个 ArrayList 类型的集合 list,用于存储遍历结果。
  3. 创建一个 LinkedList 类型的队列 queue,用于存储待遍历的节点。
  4. 如果根节点不为空,加入到队列中。
  5. 当队列不为空时,遍历队列中节点,并将节点值拼接到sb中,如左右子树不为空,添加到queue中
  6. 将拼接好的字符串放入list集合
  7. 最后将集合list转换成字符串数组,并返回结果。

本题使用编程语言:Java

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[0];
        Queue<TreeNode> queue = new LinkedList<>();
        List<String> list = new ArrayList<>();
        StringBuffer sb = new StringBuffer();
        TreeNode temp;
        int count = 1;
        int cycle;
        queue.add(root);
        while (!queue.isEmpty()) {
            cycle = count;
            count = 0;
            for (int i = 0; i < cycle; i++) {
                temp = queue.poll();
                sb.append(temp.val);
                if (temp.left != null) {
                    queue.add(temp.left);
                    count++;
                }
                if (temp.right != null) {
                    queue.add(temp.right);
                    count++;
                }
            }
            list.add(sb.toString());
            sb.delete(0,sb.length());
        }
        String[] res = new String[list.size()];
        for(int i = 0;i< list.size();++i){
            res[i] = list.get(i);
        }
        return res;
    }
}
全部评论

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务