题目很简单!!就是理解题意有点,emmmmm.
-
就想着没传入head链表怎么个删除法,都不能知道被删除元素前面的指针,所以就不能通过更改next指针来删除。
-
只能通过把被删除节点后面的元素往前移动,并删除最后一个节点即可。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
//不能访问到被删除节点以前的节点。所以就只能把它后面的节点依次前移,并删除掉最后一个节点
while(node->next->next != NULL)
{
int temp = node->next->val;
node->val = temp;
node = node->next;
}
//处理倒数第二个节点
int temp = node->next->val;
node->val = temp;
node->next = NULL;
}