19. 删除链表的倒数第N个节点(链表)

Posted Sleeping

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19. 删除链表的倒数第N个节点(链表)相关的知识,希望对你有一定的参考价值。

题目描述

leetcode - 19:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/

解题关键

  • 链表

碎碎念

中等题因为要求是 一次 循环。所以用两个TreeNode节点tmp和ntmp,ntmp = tmp - n 。简单来说就是tmp往前移动n以后ntmp才开始移动。

代码

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        ListNode* tmp = new ListNode(0);
        ListNode* ntmp = new ListNode(0);
        tmp->next = head;
        ntmp->next = head;
        int flag=0;
        while(tmp!=NULL){
            tmp=tmp->next;
            if(flag>n){
                ntmp=ntmp->next;
            }
            flag++;
        }
        if(ntmp->next==head){
            return head=head->next;
        }
        ntmp->next = ntmp->next->next;
        return head;
    }
};

以上是关于19. 删除链表的倒数第N个节点(链表)的主要内容,如果未能解决你的问题,请参考以下文章

代码随想录算法训练营第四天 | 24.两两交换链表中的节点19.删除链表的倒数第N个节点160.相交链表142.环形链表II

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

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

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

LeetCode 19删除链表的倒数第N个节点

Leetcode 19 删除链表的倒数第 N 个节点