您的位置:首页 > 文旅 > 旅游 > 360免费wifi创建失败怎么回事_梦幻西游官方网站_seo软文推广_我们seo

360免费wifi创建失败怎么回事_梦幻西游官方网站_seo软文推广_我们seo

2024/12/23 5:35:20 来源:https://blog.csdn.net/guang_Lee/article/details/143652331  浏览:    关键词:360免费wifi创建失败怎么回事_梦幻西游官方网站_seo软文推广_我们seo
360免费wifi创建失败怎么回事_梦幻西游官方网站_seo软文推广_我们seo

头歌实训:删除链表倒数第 N 个结点

文章目录

  • 任务描述
    • 示例 1:
      • 输入:head = [1,2,3,4,5], k = 2
      • 输出:[1,2,3,5]
    • 示例 2:
      • 输入:head = [1], k = 1
      • 输出:[]
    • 示例 3:
      • 输入:head = [1,2], k = 1
      • 输出:[1]
  • 编程要求
  • 测试说明
  • 源代码:

任务描述

本关任务:给你一个链表,删除链表的倒数第 k 个结点,并且返回链表的头结点。

示例 1:

在这里插入图片描述

输入:head = [1,2,3,4,5], k = 2

输出:[1,2,3,5]

示例 2:

输入:head = [1], k = 1

输出:[]

示例 3:

输入:head = [1,2], k = 1

输出:[1]

编程要求

根据提示,在右侧编辑器补充代码,删除不带附加头节点的单链表head中倒数第k个结点。

测试说明

平台会对你编写的代码进行测试:

输入包括一行,如示例所示。

测试输入1:
1 2 3 4 5
2
预期输出1:
1 2 3 5

测试输入2:
1
1
预期输出2:
``

测试输入3:
1 2
1
预期输出3:
1

提示:

数据范围:

0<=链表节点值<=1000
1<=链表长度<=1000
1<=k<=链表长度
开始你的任务吧,祝你成功!

源代码:

#include "linklist.h" /* 单链表类型声明及其基本操作 *//**typedef struct LNode
*{
*    int data;
*    struct LNode *next;     //指向后继结点
*} LinkNode, ListNode;       //声明单链表结点类型
*//*** head:不带附加头结点的单链表的头指针* k:倒数第k个结点* 返回值:返回删除倒数第k个结点后的单链表的头指针*/
ListNode* deleteNode(ListNode* head, int k) {//请在下面编写代码/********************Begin********************/int cnt = 0;    //cnt记录链表结点个数ListNode *p = head; //指针p用于循环遍历while(p){cnt++;p = p->next;}p = head;   //重置p指针,通过for循环找到第倒数k个结点的前驱结点for(int i = 1; i < cnt - k; i++){p = p->next;}if(cnt == k)    //当为第一个结点时直接删除{head = head->next;free(p);}else{   //否则进行删除ListNode *q = p->next;p->next = q->next;free(q);}return head;//返回删除后的头结点/*********************End*********************/
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com