您的位置:首页 > Web前端 > Node.js

19. Remove Nth Node From End of List

2016-02-29 11:01 471 查看
19. Remove Nth Node From End of List

Difficulty: Easy

Given a linked list, remove the nth node from the end of list and return its head.

For example, Given linked list: 1->2->3->4->5, and n = 2.

After removing the second node from the end, the linked list becomes 1->2->3->5. Note: Given n will always be valid. Try to do this in one pass.

给定一个链表,移除从链表结尾起的第n个结点,返回头结点。

struct ListNode {
int val;
struct ListNode *next;
};

struct ListNode* removeNthFromEnd(struct ListNode* head,int n)  {
int m,listlen=0;
struct ListNode* node;

if(head==NULL)
return head;

node=head;
while(node!=NULL)    //链表长度
{
listlen++;
node=node->next;
}
m=listlen-n+1;    //移除链表起始的第m个
if(m==1)
{
return head->next;
}
node=head;
while(m>2)
{
node=node->next;
m--;
}
node->next=node->next->next;
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: