leetcode19.删除链表的倒数第N个节点

1.题目
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
2.示例
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
3.思路
设置前后指针,前指针先走n步,然后一起走,前面指针到链表尾部,后面指针到要删除的节点。
4.代码
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* front=head;
ListNode* back=head;
ListNode* pre=new ListNode(INT_MIN);
while(n>0){
front=front->next;
n–;
}
if(front==NULL) return head->next;//删除第一个节点
while(front!=NULL){
pre=back;
back=back->next;
front=front->next;
}
pre->next=back->next;
return head;
}

猜你喜欢

转载自blog.csdn.net/qq_14962179/article/details/85760567
今日推荐