package com.lxg.algorithm;
public class Solution07 {
/**
* @param head: a ListNode
* @param val: An integer
* @return: a ListNode
*/
public static ListNode removeElements(ListNode head, int val) {
// write your code here
ListNode p = head;
int j = 0;
while (p != null) {
if (p.val == val)
j++;
p = p.next;
}
p = head;
System.out.println("j = " + j);
for (int i = 0; i < j; i++) {
p = head;
if (p.val == val) {
head = p.next;
} else {
while (p.next.val != val) {
p = p.next;
}
p.next = p.next.next;
}
}
return head;
}
public static void main(String[] args) {
ListNode head = new ListNode(0);
ListNode e1 = new ListNode(1);
ListNode e2 = new ListNode(2);
ListNode e3 = new ListNode(3);
ListNode e4 = new ListNode(3);
ListNode e5 = new ListNode(3);
head.next = e1;
e1.next = e2;
e2.next = e3;
e3.next = e4;
e4.next = e5;
int val = 3;
ListNode t = removeElements(head, val);
while (t!= null) {
System.out.println(t.val);
t = t.next;
}
}
}
删除链表中等于给定值 val 的所有节点。
最新推荐文章于 2021-10-27 20:13:03 发布