leet-code/src/main/java/leetcode/editor/cn/ShanChuLianBiaoDeJieDianLcof.java

73 lines
1.9 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
//
// 返回删除后的链表的头节点。
//
// 注意:此题对比原题有改动
//
// 示例 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)
}