class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
ListNode(int x, ListNode next) {
val = x;
this.next = next;
}
}
public class Solution {
public ListNode removeElements(ListNode head, int val) {
if (head == null)
return null;
ListNode dummyHead = new ListNode(0);
ListNode tail = dummyHead;
while (head != null) {
if (head.val != val) {
tail.next = head;
tail = tail.next;
}
head = head.next;
}
tail.next = null;
return dummyHead.next;
}
public ListNode removeElements2(ListNode head, int val) {
if (head == null)
return null;
ListNode dummyHead = new ListNode(0);
dummyHead.next = head;
ListNode pre = dummyHead;
ListNode curr = head;
while (curr != null) {
if (curr.val == val) {
pre.next = curr.next;
} else {
pre = pre.next;
}
curr = curr.next;
}
return dummyHead.next;
}
public ListNode removeElements3(ListNode head, int val) {
if (head == null)
return null;
head.next = removeElements2(head.next, val);
return head.val == val ? head.next : head;
}
public ListNode removeElements4(ListNode head, int val) {
if (head == null)
return null;
ListNode newHead = new ListNode(0);
ListNode savedHead = newHead;
newHead.next = head;
while (newHead.next != null) {
if (newHead.next.val == val) {
newHead.next = newHead.next.next;
} else {
newHead = newHead.next;
}
}
return savedHead.next;
}
public static void print(ListNode head) {
while (head != null) {
System.out.print(head.val + " ");
head = head.next;
}
System.out.println();
}
public static void main(String[] args) {
ListNode _4 = new ListNode(3, null);
ListNode _3 = new ListNode(3, _4);
ListNode _2 = new ListNode(2, _3);
ListNode _1 = new ListNode(1, _2);
ListNode head = new ListNode(1, _1);
ListNode result = new Solution().removeElements(head, 1);
print(result);
}
}
删除单链表指定元素
最新推荐文章于 2021-09-26 20:04:30 发布