0


LeetCode | 19. 删除链表的倒数第 N 个结点

LeetCode | 19. 删除链表的倒数第 N 个结点

OJ链接

在这里插入图片描述

思路:

  • 定义虚拟头节点dummy并初始化使其指向head
  • 然后定义快慢指针
  • 让快指针先走n步
  • 然后一起走
  • 最后删除倒数第n个节点
  • 然后释放虚拟节点dummy
structListNode*removeNthFromEnd(structListNode* head,int n){//定义虚拟头节点dummy 并初始化使其指向headstructListNode* dummy =malloc(sizeof(structListNode));
    dummy->val =0;
    dummy->next = head;//定义 fast slow 双指针structListNode* fast = head;structListNode* slow = dummy;for(int i =0; i < n;++i){
        fast = fast->next;}while(fast){
        fast = fast->next;
        slow = slow->next;}
    slow->next = slow->next->next;//删除倒数第n个节点
    head = dummy->next;free(dummy);//删除虚拟节点dummyreturn head;}
标签: leetcode 链表 linux

本文转载自: https://blog.csdn.net/2201_76004325/article/details/134515846
版权归原作者 仍然探索未知中 所有, 如有侵权,请联系我们删除。

“LeetCode | 19. 删除链表的倒数第 N 个结点”的评论:

还没有评论