LeetCode ( 203 ) ---[移除链表元素]
Posted 小智RE0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode ( 203 ) ---[移除链表元素]相关的知识,希望对你有一定的参考价值。
定义虚拟头结点;
使得一个结点作为标记去遍历链表;取到的是待删除结点的前一个结点,将匹配到 val值的结点删除后,删除结点的前一个结点 指向 变为删除结点的后一个结点.而删除的结点指向为null
/**
* 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; }
* }
*/
public class Solution {
//题目默认定义的链表结点;
class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
//定义头结点;
private ListNode head;
//初始化链表,使得头结点为null;
public Solution() {
head=null;
}
//移除链表指定内容;
public ListNode removeElements(ListNode head, int val) {
//创建虚拟头结点,
ListNode dummyHead = new ListNode(Integer.MIN_VALUE);
dummyHead.next = head;
//创建一个结点作为标记;去遍历链表;
ListNode preNOde = dummyHead;
while (preNOde.next != null) {
int result = preNOde.next.val;
//当匹配到指定的内容时删除;
if (result==(val)) {
//定义要删除的结点 delNode ;
ListNode delNode = preNOde.next;
//删除结点的位置 指向被删除结点的下一个结点;
preNOde.next = delNode.next;
//彻底删除结点;
delNode.next = null;
} else {
//若不匹配,则跳到下一个结点;
preNOde = preNOde.next;
}
}
return dummyHead.next;
}
}
以上是关于LeetCode ( 203 ) ---[移除链表元素]的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]203. Remove Linked List Elements
leetcode?python 203. Remove Linked List Elements
#Leetcode# 203. Remove Linked List Elements
LeetCode OJ 203Remove Linked List Elements