题解 | #牛群分层排列#
牛群分层排列
https://www.nowcoder.com/practice/7e98027a60424c9ba88d9c4c0506ede4
简单的层序遍历:
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 { public String[] levelOrder (TreeNode root) { if(root == null) return new String[0]; List<String> res = new ArrayList<>(); Deque<TreeNode> deque = new LinkedList<>(); deque.offer(root); res.add(String.valueOf(root.val)); while(!deque.isEmpty()){ int size = deque.size(); StringBuilder sb = new StringBuilder(); for(int i = 0;i<size;i++){ TreeNode node = deque.poll(); if(node.left != null){ sb.append(node.left.val); deque.offer(node.left); } if(node.right != null){ sb.append(node.right.val); deque.offer(node.right); } } // 注意此处的条件,数组中不能存在空字符串 if(sb.length() >= 1) res.add(sb.toString()); } return res.toArray(new String[res.size()]); } }