leetcode102二叉树的层序遍历

Posted lisin-lee-cooper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode102二叉树的层序遍历相关的知识,希望对你有一定的参考价值。

一.问题描述

  • 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

  • 示例:

  • 二叉树:[3,9,20,null,null,15,7],

    3
    /
    9 20
    /
    15 7
    返回其层序遍历结果:

  • [

  • [3],

  • [9,20],

  • [15,7]

  • ]

二示例代码

public class LevelBinarySearchTree102 {

    public static void main(String[] args) {
        TreeNode root = new TreeNode(5);
        TreeNode node1 = new TreeNode(1);
        TreeNode node2 = new TreeNode(9);
        TreeNode node3 = new TreeNode(7);
        TreeNode node4 = new TreeNode(10);
        root.left = node1;
        root.right = node2;
        node2.left = node3;
        node2.right = node4;
        List<List<Integer>> result = levelOrder(root);
        System.out.println(result);
    }

    public static List<List<Integer>> levelOrder(TreeNode root) {
        List<List<Integer>> resList = new ArrayList<>();
        if (root == null) {
            return resList;
        }
        LinkedList<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while (!queue.isEmpty()) {
            List<Integer> curLevel = new ArrayList<>();
            int curLevelNum = queue.size();
            for (int i = 0; i < curLevelNum; i++) {
                TreeNode curNode = queue.removeFirst();
                curLevel.add(curNode.val);
                if (curNode.left != null) {
                    queue.add(curNode.left);
                }
                if (curNode.right != null) {
                    queue.add(curNode.right);
                }
            }
            resList.add(curLevel);
        }
        return resList;
    }

}

以上是关于leetcode102二叉树的层序遍历的主要内容,如果未能解决你的问题,请参考以下文章

leetcode102二叉树的层序遍历

leetcode-102二叉树的层序遍历

#yyds干货盘点# leetcode-102. 二叉树的层序遍历

LeetCode Java刷题笔记—102. 二叉树的层序遍历

LeetCode 102. 二叉树的层序遍历

[JavaScript 刷题] 搜索 - 二叉树的层序遍历, leetcode 102