其他分享
首页 > 其他分享> > leetcode刷题题解——107. 二叉树的层序遍历 II

leetcode刷题题解——107. 二叉树的层序遍历 II

作者:互联网

public List<List<Integer>> levelOrderBottom(TreeNode root) {
    List<List<Integer>> lists = new ArrayList<>();
    if (root==null) return lists;
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    int levelSize = 1;
    List<Integer> levelList = new ArrayList<>();
    while (!queue.isEmpty()){
        TreeNode node = queue.poll();
        levelList.add(node.val);
        levelSize--;
        if (node.left!=null) queue.offer(node.left);
        if (node.right!=null) queue.offer(node.right);
        if (levelSize==0){
            levelSize = queue.size();
            lists.add(0,levelList);
            levelList = new ArrayList<>();
        }
    }
    return lists;
}

思路

这道题我是投机取巧了,其实如果看过我102. 二叉树的层序遍历的题解的朋友可以发现,其实我仅仅是改变了levelList添加进lists的位置,一个是表头、一个是表尾

标签:node,levelSize,题解,层序,lists,queue,二叉树,root,levelList
来源: https://blog.csdn.net/qq_53226437/article/details/122860973