这道题太简单了,学过数据结构都会做,往后遍历,找到要删的节点后,把这个节点的前一个节点的next设为该节点的next就可以了,做一下空判断和删除头节点的情况就可以了。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteNode(ListNode head, int val) {
if(head == null) return null;
if(head.val == val) return head.next;
ListNode q = null;
for(ListNode node = head;node != null; node = node.next){
if(node.val != val){
q = node;
}else{
q.next = node.next;
break;
}
}return head;
}
}