From a893dd6a8ba82589e56008591bb9b5f892dd1bb6 Mon Sep 17 00:00:00 2001 From: huangge1199 Date: Mon, 7 Jun 2021 13:16:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=91=E6=8C=87=20Offer=2018:=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=93=BE=E8=A1=A8=E7=9A=84=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/ShanChuLianBiaoDeJieDianLcof.java | 73 +++++++++++++++++++ .../editor/cn/ShanChuLianBiaoDeJieDianLcof.md | 29 ++++++++ 2 files changed, 102 insertions(+) create mode 100644 src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.java create mode 100644 src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.md diff --git a/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.java b/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.java new file mode 100644 index 0000000..04f5fab --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.java @@ -0,0 +1,73 @@ +//给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 +// +// 返回删除后的链表的头节点。 +// +// 注意:此题对比原题有改动 +// +// 示例 1: +// +// 输入: head = [4,5,1,9], val = 5 +//输出: [4,1,9] +//解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. +// +// +// 示例 2: +// +// 输入: head = [4,5,1,9], val = 1 +//输出: [4,5,9] +//解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9. +// +// +// +// +// 说明: +// +// +// 题目保证链表中节点的值互不相同 +// 若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点 +// +// Related Topics 链表 +// 👍 137 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.ListNode; + +//剑指 Offer 18:删除链表的节点 +public class ShanChuLianBiaoDeJieDianLcof{ + public static void main(String[] args) { + //测试代码 + Solution solution = new ShanChuLianBiaoDeJieDianLcof().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +/** + * Definition for singly-linked list. + * public class ListNode { + * int val; + * ListNode next; + * ListNode(int x) { val = x; } + * } + */ +class Solution { + public ListNode deleteNode(ListNode head, int val) { + ListNode temp = head; + ListNode pro = head; + while (temp.val == val) { + head = pro = temp = head.next; + } + temp = temp.next; + while (temp != null) { + if (temp.val == val) { + pro.next = temp.next; + }else{ + pro = temp; + } + temp = temp.next; + } + return head; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.md b/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.md new file mode 100644 index 0000000..408fb46 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.md @@ -0,0 +1,29 @@ +

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

+ +

返回删除后的链表的头节点。

+ +

注意:此题对比原题有改动

+ +

示例 1:

+ +
输入: head = [4,5,1,9], val = 5
+输出: [4,1,9]
+解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
+
+ +

示例 2:

+ +
输入: head = [4,5,1,9], val = 1
+输出: [4,5,9]
+解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
+
+ +

 

+ +

说明:

+ + +
Related Topics
  • 链表
  • \n
  • 👍 137
  • 👎 0
  • \ No newline at end of file