#include "linklist.h" /* 单链表类型声明及其基本操作 */
/**typedef struct LNode
*{
* int data;
* struct LNode *next; //指向后继结点
*} LinkNode, ListNode; //声明单链表结点类型
*/
/**
* head:不带附加头结点的单链表的头指针
* k:倒数第k个结点
* 返回值:返回删除倒数第k个结点后的单链表的头指针
*/
int getLength(LinkNode* head){
int len=0;
if(head==NULL) return 0;
while(head!=NULL){
len++;
head=head->next;
}
return len;
}
ListNode* deleteNode(ListNode* head, int k) {
//请在下面编写代码
/********************Begin********************/
int len;
if(head==NULL) return 0;
len=getLength(head);
LinkNode *temp=head;
if(len==k){
head=head->next;
return head;
}
for(int i=1;i<len-k;i++){//找到前驱结点
temp=temp->next;
}
temp->next=temp->next->next;
return head;
/*********************End*********************/
}