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

414 阅读1分钟

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

题目链接:leetcode.cn/problems/re…

这题主要是运用双指针的思路。 代码如下: /**

  • Definition for singly-linked list.

  • struct ListNode {

  • int val;
    
  • ListNode *next;
    
  • ListNode() : val(0), next(nullptr) {}
    
  • ListNode(int x) : val(x), next(nullptr) {}
    
  • ListNode(int x, ListNode *next) : val(x), next(next) {}
    
  • }; / class Solution { public: ListNode removeNthFromEnd(ListNode* head, int n) { ListNode* dummyHead = new ListNode(0); dummyHead->next = head; ListNode* slow = dummyHead; ListNode* fast = dummyHead; while(n-- && fast != NULL) { fast = fast->next; } fast = fast->next; while (fast != NULL) { fast = fast->next; slow = slow->next; } slow->next = slow->next->next;

     // ListNode *tmp = slow->next; 
     // slow->next = tmp->next;
     // delete tmp;
     
     return dummyHead->next;
    

    } };