package JavaLearning;
//删除链表中等于给定值 val 的所有节点
/*
提前定义好了
package JavaLearning;
//链表的定义
public class ListNode {
// 结点的值
int val;
// 下一个结点
ListNode next;
// 节点的构造函数(无参)
public ListNode() {
}
// 节点的构造函数(有一个参数)
public ListNode(int val) {
this.val = val;
}
// 节点的构造函数(有两个参数)
public ListNode(int val, ListNode next) { //val节点的值,next下一个链表的值
this.val = val;
this.next = next;
}
// 添加新的结点
public void add(int newval) {
ListNode newNode = new ListNode(newval);
if(this.next == null)
this.next = newNode;
else
this.next.add(newval);
}
// 打印链表
public void print() {
System.out.print(this.val);
if(this.next != null)
{
System.out.print("-->");
this.next.print();
}
}
}
*/
class Solution_203 {
public ListNode removeElements(ListNode head, int val) {
while (head != null && head.val == val) {
head = head.next;
}
// 已经为null,提前退出
if (head == null) {
return head;
}
// 已确定当前head.val != val
ListNode pre = head;
ListNode cur = head.next;
while (cur != null) {
if (cur.val == val) {
pre.next = cur.next;
} else {
pre = cur;
}
cur = cur.next;
}
return head;
}
}
public class removeElements{
public static void main(String[] args) {
Solution_203 remove = new Solution_203();
ListNode listNode = new ListNode(-1);
listNode.add(1);
listNode.add(2);
listNode.add(6);
listNode.add(3);
listNode.add(6);
listNode.add(4);
listNode.print();
System.out.println();
remove.removeElements(listNode,6);
listNode.print();
}
}
LeetCode_203:移除链表元素:Java
最新推荐文章于 2022-10-19 21:30:00 发布