当前位置: 首页 > article >正文

【d48】【Java】【力扣】LCR 123. 图书整理 I

思路

方法1:放进list,将list倒置,利用stream,将list改为int类型

方法2:递归:递归通用思路;明确每一层做什么+确定返回值+确定什么地方接收下层的返回值

每一层:调用下层,然后把自己放进数组,把数组返回给上层
确定返回值:返回本层添加后的list,确定调用下层的时候接收,

代码

方法1

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public int[] reverseBookList(ListNode head) {
           //遍历把所有节点放进list
            ListNode cur=head;
            ArrayList<Integer> list = new ArrayList<>();
            while(cur!=null){
                list.add(cur.val);
                cur=cur.next;
            }
            //倒置这个
            Collections.reverse(list);
            //把list放进int[]
            int[] array = list.stream().mapToInt(Integer::intValue).toArray();
            return array;
    }
}

方法2

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public int[] reverseBookList(ListNode head) {
        if (head==null){
                return new int[0];
            }
            //递归:每一层做法:调用下层 ,然后把自己放进数组
            //头节点调用递归方法
            ArrayList<Integer> list = new ArrayList<>();
            list = diGui(head, list);
            int[] array = list.stream().mapToInt(Integer::intValue).toArray();
            return array;
        }
        //递归:调用下层,然后把自己放进数组,把数组返回给上层
        //确定返回值,确定调用下层的时候接收,
        public ArrayList<Integer> diGui (ListNode cur,ArrayList<Integer> list){
            if (cur.next!=null){
                list=diGui(cur.next,list);
            }
            list.add(cur.val);
            return list;
        }
    }

记录

总结


http://www.kler.cn/a/317667.html

相关文章:

  • Jmeter性能测试 -3数据驱动实战
  • 万字长文解读深度学习——ViT、ViLT、DiT
  • 轻松上手:使用Docker部署Java服务
  • 带你掌握springboot集成SpringSecurity安全框架
  • 【知识科普】SPA单页应用程序介绍
  • Dial-insight:利用高质量特定领域数据微调大型语言模型防止灾难性遗忘
  • 在 Webpack 中配置多入口应用并实现公共依赖的提取
  • 安卓13修改设置设备型号和设备名称分析与更改-android13设置设备型号和设备名称更改
  • 网络安全与国家安全的关系
  • 计算机视觉实战项目4(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
  • SpringBoot | Maven快速上手
  • ER论文阅读-Decoupled Multimodal Distilling for Emotion Recognition
  • git reflog 和 git log 的详解和区别
  • python 实现bailey borwein plouffe算法
  • AutoX.js向后端传输二进制数据
  • HTML常见语法设计
  • RTSP学习
  • 气膜建筑的维护与维修:延长使用寿命的关键—轻空间
  • 数据科学的秘密武器:defaultdict——Python字典的自动化填充神器,让数据结构更灵活
  • golang学习笔记10-循环结构
  • 黎巴嫩通信设备连环爆炸之谜——网络+供应链攻击
  • 单元测试和unittest框架(超详细总结)
  • ubuntu配置libtorch CPU版本
  • 基本定时器的预分频器和技术周期的计算
  • STM32与51单片机的区别:是否应该直接学习STM32?
  • 推荐一款开源的Redis桌面客户端