题目描述:
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
复杂度分析:
时间复杂度 O(N) : N 为链表长度,删除操作平均需循环 N/2 次,最差 N 次。
空间复杂度 O(1) : cur, pre 占用常数大小额外空间。
class Solution{
public ListNode deleteNode(ListNode head,int val){
if(head.val==val) return head.next;
ListNode pre = head,cur=head.next;
while(cur!=null&&cur.val!=val){
pre = cur;
cur = cur.next;
}
if(cur!=null) pre.next = cur.next;
return head;
}
}
标签:pre,head,cur,val,Offer,18,next,链表 From: https://www.cnblogs.com/zhz123567/p/17401003.html