发表回复

后才能评论

评论(5)

  • Mr.肖 永久会员 2024年4月9日 下午5:11
    //102
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            List<List<Integer>> list = new LinkedList<>();
            if(root == null){
                return list; 
            }
    
            Queue<TreeNode> queue = new LinkedList<>();
            queue.offer(root);
    
            while(!queue.isEmpty()){
                //统计每一层元素个数
                int n = queue.size();
                List<Integer> t = new LinkedList<>();
                for(int i = 0; i < n; i++){
                    TreeNode temp = queue.poll();
                    t.add(temp.val);
                    if(temp.left != null){
                        queue.offer(temp.left);
                    }
                    if(temp.right != null){
                        queue.offer(temp.right);
                    }
                }
                list.add(t);
            }
    
            return list;
        }
    }
    
  • 少年不识流川枫 永久会员 2024年3月2日 下午6:26

    打卡

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
    class Solution {
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
    
            if(root == null){
                return new ArrayList<>();
            }
    
            Queue<TreeNode> queue = new LinkedList<>();
            List<List<Integer>> linkedList = new LinkedList<>();
            // 中间的List<Integer>  需要循环重复创建
    
            queue.add(root);
            while(!queue.isEmpty()){
                List<Integer> res = new ArrayList<>();
    
                // 怎么将9,20 放进另一个res中?用for循环,将每层节点放进各个res中
                // 找一个for循环结束的大小,比如第一次是1,第二次是2,第三层以此类推,大小咋确定?就是进循环前 队列此时的大小
                int size = queue.size();
                for(int i = 0; i < size; i++){
                    TreeNode temp = queue.poll();
                    res.add(temp.val);
    
                    if(temp.left != null){
                       queue.add(temp.left);
                    }
                    if(temp.right != null){
                       queue.add(temp.right);
                    }
                } 
                // 怎么将arrayList从后开始变道第一个
                linkedList.add(0, res);
    
            }
            return linkedList;
    
        }
    }
    
  • 糕冷 永久会员 2023年12月4日 下午3:53

    打卡

  • Thaddeus 永久会员 2023年9月8日 下午4:14
    打卡
    /*
     时间复杂度:O(n)
     空间复杂度:O(n)
    也可以使用双端队列deque,奇数层就从尾部入队,偶数层就从头部入队
     */
    class Solution {
    public:
        vector> levelOrder(TreeNode* root) {
            if(root == nullptr) return vector>();
            queue que;
            que.push(root);
            vector> res;
            int flag = 1;
            while(!que.empty()) {
                int size = que.size();
                vector v;
                while(size--) {
                    TreeNode* node = que.front();
                    que.pop();
                    v.push_back(node->val);
                    if(node->left != nullptr) que.push(node->left);
                    if(node->right != nullptr) que.push(node->right);
                }
                if(flag % 2 == 1) res.push_back(v);
                else {
                    reverse(v.begin(), v.end());
                    res.push_back(v);
                }
                flag++;
            }
            return res;
        }
    };
    
  • 帅气的冬瓜 普通 2023年7月5日 下午1:48

    打卡

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理