剑指offer08 JZ18 删除链表的节点
删除链表的节点
https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d?tpId=13&tqId=2273171&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13
- 删除链表就是修改cur.next的指向,跳过一个节点
- 如果值相等就跳过一个节点。修改指向
- 需要考虑删除节点在头结点。直接返回cur.next
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @param val int整型
* @return ListNode类
*/
public ListNode deleteNode (ListNode head, int val) {
// write code here
ListNode cur=head;
if(cur.val==val){
return cur.next; //处理头部元素就是要删除的元素
}
//删除链表就是修改指针指向
while(cur.next!=null){
if(cur.next.val==val){
cur.next=cur.next.next; //跳过一个,修改指向
}
else{
cur=cur.next;//正常遍历
}
}
return head;
}
}