【随想】每日两题Day.4

简介: 【随想】每日两题Day.4

题目:LeetCode 203.移除列表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6

输出:[1,2,3,4,5]

示例 2:


输入:head = [], val = 1

输出:[]

示例 3:


输入:head = [7,7,7,7], val = 7

输出:[]

提示:


列表中的节点数目在范围 [0, 104] 内

1 <= Node.val <= 50

0 <= val <= 50

代码:

/**
 * 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 ListNode removeElements(ListNode head, int val) {
        while(head!=null && head.val==val) {
            head = head.next;
        }
        if(head == null) return null;
        ListNode cur = head.next;
        ListNode prev = head;
        while(cur != null) {
            if(cur.val == val) {
                prev.next = cur.next;
            } else {
                prev = cur;
            }
            cur = cur.next;
        }
        return head;
    }
}

思考:

这道题很简单,注意边界和判空吧。

题目:206.反转链表

示例 1:

输入:head = [1,2,3,4,5]

输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]

输出:[2,1]


示例 3:

输入:head = []

输出:[]


提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

代码:

/**
 * 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 ListNode reverseList(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode newhead = null;
        ListNode cur = head;
        //头插新节点
        while(cur != null) {
            ListNode tmp = cur;
            cur = cur.next;
            tmp.next = newhead;
            newhead = tmp;
        }
        return newhead;
    }
}

思考:

这个也很简单,头插法既简单又好理解。根据尾插理解头插,尾插就是找个新的尾,头插就是找个新的头。等二刷的时候再看什么双指针,递归法吧。

目录
相关文章
|
机器学习/深度学习 传感器 人机交互
3D人体姿态估计(教程+代码)
3D人体姿态估计(教程+代码)
|
5月前
|
人工智能 安全 API
上手教程:聊聊怎么用阁下AI的API
上手教程:聊聊怎么用阁下AI的API
|
5月前
|
编解码
南京观海微电子----DAC/ADC原理
DAC将数字量按权值转换为模拟量,核心由锁存器、电子开关、基准源、权电阻网络和求和电路组成。常见结构有倒T型电阻网络和权电流转换器。ADC则通过取样、保持、量化、编码将模拟信号转为数字量,主要类型包括逐次逼近型、积分型和并行比较型,关键指标有分辨率、转换速率和基准源精度。
南京观海微电子----DAC/ADC原理
|
6月前
|
人工智能 架构师 开发者
破局2025:定义AI数字艺术新生态的十大关键人物
当AI艺术迈入生态竞争时代,十位创作者正重塑未来。他们超越技术炫技,以生态构建、商业创新与跨界影响力开辟新疆域。从乾元AIGC的多维赋能,到林响的数字乡建,再到织梦人的互动叙事,他们定义规则,连接技术与人文,成为AI艺术时代的建筑师与引路人。
|
Linux 测试技术 编译器
在go程序中的交叉编译
【7月更文挑战第9天】本文介绍Go 交叉编译允许在一种平台上构建适用于多平台的二进制文件。`go build -cover`用于覆盖率分析,`-coverpkg`控制分析的包范围,生成的二进制文件运行后,覆盖率数据会写入`GOCOVERDIR`指定的目录。
750 14
在go程序中的交叉编译
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
人工智能 自然语言处理 搜索推荐
告别加班!用DeepSeek搭建全自动爆款图文工厂
随着人工智能技术的飞速发展,图文创作迎来了革命性飞跃。DeepSeek作为强大的AI工具,可批量生成高质量图文笔记,精准适配小红书、抖音、B站等平台。通过明确选题、撰写提示词,用户能轻松定制内容风格,涵盖字体、背景、颜色等多方面细节。从注册登录到生成HTML代码,再到优化处理图片,DeepSeek为创作者提供了全流程支持,助力打造爆款内容。无论是分析爆款笔记还是二次创作,DeepSeek都能大幅提升效率,引领潮流风向标。
696 25
|
人工智能 算法 数据管理
制作像素风《饥荒》类游戏的整体蓝图和流程
制作一个像素风《饥荒》类游戏的整体蓝图和流程
|
Oracle Java 关系型数据库
玩客云安装Armbian和部署jdk环境
该文介绍了在玩客云设备上安装Armbian系统和Java SDK的步骤。首先,需要准备玩客云设备、Armbian镜像文件和USB工具。然后,通过短接点刷入Armbian系统,并通过SSH访问。接着,从可信源下载Java SDK,将其解压并移动到合适目录,编辑环境变量使其生效。最后验证Java安装成功。注意选择兼容版本并备份数据。内容涵盖了ROM开发相关技术。
813 2
|
前端开发 UED 开发者
React 选项卡组件 Tabs:从基础到优化
本文详细介绍了如何在React中构建一个功能丰富的选项卡组件,包括基础实现、样式美化、常见问题及解决方法。通过逐步讲解,从简单的选项卡组件结构开始,逐步引入样式、性能优化、动态内容加载、键盘导航支持和动画效果,最后讨论了自定义样式的实现。旨在帮助开发者在React项目中高效构建高质量的选项卡组件。
530 18