小向z 2022-11-23 15:27 采纳率: 100%
浏览 0
已结题

删除链表中倒数第N个结点,不知道哪里出问题了

问题遇到的现象和发生背景

删除链表中倒数第N个结点,帮忙看看思路哪里出问题了

用代码块功能插入代码,请勿粘贴截图
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
//dummy-1-2-3-4-5-6-null

struct ListNode* removeNthFromEnd(struct ListNode* head, int n){
    struct ListNode *DummyNode=(struct ListNode*)malloc(sizeof(struct ListNode));
    DummyNode->next=head;
    struct ListNode* fast = DummyNode;
    struct ListNode* slow = DummyNode;
    for(int i=0;i<=n;i++)
    {
        fast=fast->next;
    }
    while(fast!=NULL)
    {
        fast=fast->next;
        slow=slow->next;
    }

    slow->next=slow->next->next;
    slow->next->next=NULL;//这句话加和不加都报错了
    free(slow->next);  
    return DummyNode->next;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

leecode的一个题,我的思路是快慢指针,先创建一个虚拟头节点DummyNode,DummyNode->next=head。
https://img-mid.csdnimg.cn/release/static/image/mid/ask/862891981966175.png "#left")
后fast和slow指针同时先指向DummyNode,fast指针先移动n+1个单位,然后slow和fast同时移动,直到fast为NULL时停止。
停止后slow->next即为待删除的结点
实在想不到哪里出了问题。各位帮忙看看

我想要达到的结果

正确结果

  • 写回答

3条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 12月1日
      • 已采纳回答 11月23日
      • 修改了问题 11月23日
      • 修改了问题 11月23日
      • 展开全部

      悬赏问题

      • ¥15 房号如何排序,sql或算法
      • ¥15 macOS使用IDEA 2022.2.4打包JDK6项目报错
      • ¥20 OpenCV-Python简单轮廓寻找
      • ¥20 使用matlab进行含参数的最优化求解及数值模拟
      • ¥20 MATLAB找出一维变量中的局部极大值和局部极小值,并进行运算
      • ¥15 有Chang求三维杆单元几何非线性分析matlab代码
      • ¥50 使用unity easyar录屏功能。录屏视频整体色调很暗
      • ¥50 pyinstaller 打包问题
      • ¥15 无法使用cnssc调取网页数据
      • ¥15 Pycharm安装en_core_web_sm失败出现Could not find a version that satisfies the requirement spacy报错