LeetCode Hot100 102.二叉树的层序遍历

题目:

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

方法:迭代

class Solution {
    public List> levelOrder(TreeNode root) {
        if (root == null)
            return new ArrayList>();
        List> ans = new ArrayList>();
        LinkedList queue = new LinkedList();
        queue.add(root);
        while (!queue.isEmpty()) {
            int n = queue.size();
            List tmp = new ArrayList();
            while (n-- > 0) {   // 每次 while (!queue.isEmpty())循环要处理一层,需要变量n协助
                TreeNode node = queue.poll();
                tmp.add(node.val);
                if (node.left != null)
                    queue.add(node.left);
                if (node.right != null)
                    queue.add(node.right);
            }
            ans.add(tmp);
        }
        return ans;
    }
}

LeetCode Hot100 102.二叉树的层序遍历_第1张图片

你可能感兴趣的:(算法刷题-二叉树,leetcode,数据结构,算法)