二叉树的层数便利

// 二分搜索树的层序遍历
   public void levelOrder() {
       // 我们使用LinkedList来作为我们的队列
       LinkedList<Node> q = new LinkedList<>();
       q.add(root);
       while (!q.isEmpty()) {
           Node node = q.remove();
           System.out.print(node.key);
           if (node.left != null) {
               q.add(node.left);
           }
           if (node.right != null) {
               q.add(node.right);
           }
       }
   }

方式二

    public List<List<Key>> levelOrder(String st) {
        List<List<Key>> res = new ArrayList<>();
        itr(res, 0, root);
        return res;
    }

    private void itr(List<List<Key>> res, int index, Node root) {
        if (root == null) return;
        if (index + 1 > res.size()) {
            res.add(new ArrayList<>());
        }
        res.get(index).add(root.key);
        itr(res, ++index, root.left);
        itr(res, index, root.right);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容