删除链表中倒数第n个节点
2017-03-29 22:12
183 查看
1.描述:
删除链表中倒数第n个节点
2.思路:先用一个for循环得到链表长度,再用一个for循环到要删的节点,操作指针
3.代码
ListNode *removeNthFromEnd(ListNode *head, int n) {
//ListNode *p= new ListNode(0);
ListNode *p=new ListNode(0);int i;ListNode *q=new ListNode(0);
p=head;
for(i=0;p!=NULL;i++)
{
p=p->next;
}
if(i==n){head=head->next;return head;}
q=head;
for(int m=1;m<i-n+1&&q!=NULL;m++)
{
p=q;
q=q->next;
}
p->next=q->next;
return head;
}
4.感想:刚开始只新建了一个链表操作,在第二个for循环中没有另用一个链表做辅助,导致老是runtime error,新建链表辅助操作很重要!
删除链表中倒数第n个节点
2.思路:先用一个for循环得到链表长度,再用一个for循环到要删的节点,操作指针
3.代码
ListNode *removeNthFromEnd(ListNode *head, int n) {
//ListNode *p= new ListNode(0);
ListNode *p=new ListNode(0);int i;ListNode *q=new ListNode(0);
p=head;
for(i=0;p!=NULL;i++)
{
p=p->next;
}
if(i==n){head=head->next;return head;}
q=head;
for(int m=1;m<i-n+1&&q!=NULL;m++)
{
p=q;
q=q->next;
}
p->next=q->next;
return head;
}
4.感想:刚开始只新建了一个链表操作,在第二个for循环中没有另用一个链表做辅助,导致老是runtime error,新建链表辅助操作很重要!
相关文章推荐
- LeetCode(Remove Nth Node From End of List)删除链表倒数第n个节点
- 删除链表中倒数第n个节点-LintCode
- 删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- 链表:删除倒数第n个节点
- [LeetCode-19] Remove Nth Node From End of List(删除链表中倒数第N个节点)
- lintcode 174 删除链表中倒数第n个节点
- 坚持坚持!用Java写出删除一个链表的倒数第N个节点,并返回头节点(N总是可达的)
- Lintcode174——删除链表中倒数第n个节点
- 【面试题】删除链表中倒数第n个节点
- Leet Code 19 删除链表中倒数第n个节点 - Java
- 删除链表中倒数第n个节点
- 链表遍历一次删除倒数第N个节点
- Remove Nth Node From End of List 删除链表倒数第N个节点
- python---删除链表中倒数第n个节点
- 删除链表中倒数第n个节点
- 174 - 删除链表中倒数第n个节点
- 删除单向链表倒数第n个节点
- 每天一道LeetCode-----删除链表倒数第n个节点
- lintcode 容易题:Remove Nth Node From End of Lis 删除链表中倒数第n个节点