思路:遍历被删除节点之后的节点,将值赋给前一个,直到下一个节点不为空,例如:链表为 [4,5,1,9], 被删除节点为5,则遍历之后为[4,1,9,9],这样就只用删除最后一个节点。
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
ListNode t=node;
while(node.next!=null){
node.val=(node.next).val;
t=node;
node=node.next;
}
t.next=null;
}