删除链表中倒数第N个节点
2017-03-26 15:16
465 查看
问题描述:
给定一个链表删除链表中倒数第N个节点,返回链表的头结点。链表中的节点个数大于等于N。实现思路:
首先, 利用FOR循环得到链表的总节点数,count从零开始记数;链表中的倒数第N个节点,就是该链表的第N-count+2个节点;如果删除的是第一个节点就返回head->next。如果不是第一个节点,利用For循环先找到第N-count+1个节点P , 然后p->next=p->next->next,这样就删除了该链表的倒数第N个节点。实现代码:
ListNode *removeNthFromEnd(ListNode *head, int n) {if (head == NULL) {
return NULL;
}
int count = 0;
ListNode *p, *q;
for (p= head; p->next!= NULL; count++)
{ p= p->next;}
int i= 1;
if(count-n+1==0)
return head->next;
for ( p= head; i< count-n+1; i++)
{ p= p->next;}
q= p->next;
p->next= q->next;
delete q;
return head;
}
感想:
一开始没有考虑到删除第一个节点的情况,直接return head,无法实现删除。
相关文章推荐
- LintCode 删除链表中倒数第n个节点
- LintCode-删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- [LeetCode-19] Remove Nth Node From End of List(删除链表中倒数第N个节点)
- 删除链表中倒数第n个节点
- python---删除链表中倒数第n个节点
- Java - 删除链表中倒数第n个节点
- LeetCode算法练习(删除链表的倒数第N个节点)
- 每天一道LeetCode-----删除链表倒数第n个节点
- 链表遍历一次删除倒数第N个节点
- leetcode19--删除链表中倒数第n个节点
- 【面试题】删除链表中倒数第n个节点
- LeetCode(Remove Nth Node From End of List)删除链表倒数第n个节点
- 【LeetCode】Remove Nth Node From End of List 删除链表中倒数第n个节点- Easy +
- 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- LintCode- 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点