1、题目描述
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
1.此题对比原题有改动
2.题目保证链表中节点的值互不相同
3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点
2、算法分析
本题比较简单。
若head结点的值是否等于val,等于的话返回head.next
若链表中中间的值等于val,那么x.next = x.next.next
3、代码实现
public ListNode deleteNode(ListNode head,int val){
ListNode newHead = head;
if(head.val == val){
return head.next;
}
while(head.next.val != val){
head = head.next;
}
head.next = head.next.next;
return newHead;
}