美文网首页
Leetcode 102. 二叉树的层序遍历

Leetcode 102. 二叉树的层序遍历

作者: 尹学姐 | 来源:发表于2023-03-26 20:50 被阅读0次

    题目

    给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

    示例 1:

    输入:root = [3,9,20,null,null,15,7]
    输出:[[3],[9,20],[15,7]]
    </pre>

    示例 2:

    输入:root = [1]
    输出:[[1]]

    示例 3:

    输入:root = []
    输出:[]
    </pre>

    提示:

    • 树中节点数目在范围 [0, 2000]
    • -1000 <= Node.val <= 1000

    解题思路

    这是一道典型的BFS题目,直接用队列来实现即可。

    方法 时间复杂度 空间复杂度
    BFS O(n) O(n)

    Java代码

    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> res = new ArrayList<>();
            Queue<TreeNode> queue = new LinkedList<>();
            if(root != null) queue.offer(root);
            while(!queue.isEmpty()){
                int size = queue.size();
                List<Integer> list = new ArrayList<>();
                for(int i = 0; i < size; i++){
                    TreeNode node = queue.poll();
                    list.add(node.val);
                    if(node.left != null) queue.offer(node.left);
                    if(node.right != null) queue.offer(node.right);
                }
                res.add(list);
            }
            return res;
        }
    }
    

    总结

    树的遍历有四种方式:

    • 前序遍历:DFS
    • 中序遍历:DFS
    • 后序遍历:DFS
    • 层序遍历:BFS

    相关文章

      网友评论

          本文标题:Leetcode 102. 二叉树的层序遍历

          本文链接:https://www.haomeiwen.com/subject/ndkardtx.html