链表逆置的两种方法

这篇具有很好参考价值的文章主要介绍了链表逆置的两种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原链表图:

链表逆置,每日一学,链表,数据结构 

方法一:头插法链表逆置

1.断开头节点与其他节点的连接(提前存好head->next的地址)

    Node* p = head->next;

    Node* q = p->next;

    head->next = NULL;链表逆置,每日一学,链表,数据结构

2. 头插法在head后面插入p后链表的各个节点

    p->next = head->next;

    head->next = p;

p、q指针往后移

    p = q;

    if (q != NULL)

          q = q->next;

链表逆置,每日一学,链表,数据结构

3. 依此类推直到全部插入,链表逆置完成

链表逆置,每日一学,链表,数据结构

完整代码:

void R_head(List head)
{
	assert(head != NULL);
	if (head == NULL)
		return;
	if (GetLength(head) <= 1)
		return;
	Node* p = head->next;
	Node* q = p->next;
	head->next = NULL;
	while (p != NULL)
	{
		p->next = head->next;
		head->next = p;
		p = q;
		if (q != NULL)
			q = q->next;
	}
	return;
}

 方法二:三个指针直接逆置

1.设置三个指针分别指向head后面的三个节点

    Node* p = head->next;

    Node* q = p->next;

    Node* r = q->next;

链表逆置,每日一学,链表,数据结构

2. p第一个指向的节点(head->next)的指针域赋为空

    p->next = NULL;

链表逆置,每日一学,链表,数据结构

3. 把q的next指向q,然后p,q,r往后移(r是为了存逆置前q的next)

        q->next = p;

        p = q;

        q = r;

        r = r->next;

链表逆置,每日一学,链表,数据结构

4. 当r指向空时,不再后移,将head的next指向q

    q->next = p;

    plist->next = q;

链表逆置,每日一学,链表,数据结构

 完整代码:

void R(List head)
{
	assert(head != NULL);
	if (head == NULL)
		return;
	if (GetLength(head) <= 1)
		return;
	Node* p = head->next;
	Node* q = p->next;
	Node* r = q->next;
	p->next = NULL;
	while (r != NULL)
	{
		q->next = p;
		p = q;
		q = r;
		r = r->next;
	}
	q->next = p;
	head->next = q;
}

三指针相对复杂。

如果链表长度为1或0则不需要逆置直接return。文章来源地址https://www.toymoban.com/news/detail-597340.html

到了这里,关于链表逆置的两种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PPT设置“只读模式”的两种方法

    想要防止PPT文件被意外更改,或者禁止他人随意更改,我们可以给PPT设置保护模式,而PPT的“只读模式”就起到了这样的作用。 ​具体的设置方法有两种,我们可以根据不同需求选择合适的方法。 方法一: 防止意外更改,起提醒作用,我们只需设置没有密码的“只读模式”

    2024年02月04日
    浏览(47)
  • PPT“放映模式”的两种设置方法

    做好的PPT文件要如何放映呢?下面来说说设置PPT放映模式的两种方法。 方法一,直接在PPT文件里设置播放幻灯片。 1、打开PPT后,点击菜单栏【幻灯片放映】选项下的【设置幻灯片放映】。   2、弹出对话框后,根据需要选择不同放映方式,如幻灯片放映的页数、“手动放映

    2024年02月05日
    浏览(41)
  • java关闭流的两种方法

    当使用完流后,关闭所有打开的流仍然是一个好习惯。一个被打开的流有可能会用尽系统的资源,这取决于平台和实现。如果没有将流关闭,另一个程序试图打开另一个流时,可能会得到不需要的资源。 有两种关闭方式: ​ 如下: jdk1.7之前 方法一:手动关闭,即为使用c

    2024年02月13日
    浏览(35)
  • Falsh 发送图片的两种方法

    当使用flask框架的时候,去发送和接收图片,但是官方的是只有一个save方法,只能保存到本地在读取,那我岂不是还得再读出来,这多麻烦 Post发送图片 方式一 方式二 Flask接收图片 方式一 方式二 方式三

    2024年02月11日
    浏览(37)
  • 查看 WiFi 密码的两种方法

    突然忘记 WiFi 密码怎么办? 想连上某个使用过的 WiFi,但有不知道 WiFi 密码怎么办? 使用电脑如何查询 WiFi 密码? 以下是我知道的两个使用电脑查看 WiFi 密码的方法,希望对你有所帮助; 在电脑上打开 控制面板 ; 点击 网络和internet 》 网络和共享中心 》 查看网络状态和任

    2024年02月09日
    浏览(36)
  • 本地代码上传至github的两种方法

    目录 方法一:使用sourcetree 1. 在github网站上新建一个仓库 2. 复制这个仓库的https地址 3.新建一个空的文件夹,打开sourcetree,选择新建/从URL克隆 4. 点击提交,添加注释 常见问题: 解决方法 方法二:命令行上传代码 1.在github上,建立自己的仓库 2.在待上传的代码文件下,运行

    2024年02月03日
    浏览(36)
  • 设置Excel表格“只读模式”的两种方法

    Excel表格的“只读模式”可以帮助我们防止意外更改表格,根据不同需求,表格可以设置“有密码”和“无密码”的两种“只读模式”,下面来说说具体设置方法。 一、无密码“只读模式” 如果主要是想防止自己意外修改了表格,可以设置没有密码的“只读模式”。 打开E

    2023年04月22日
    浏览(39)
  • 二叉树创建的两种方法(图解)

            目录 一、括号表示法 (1)括号表示法构建二叉树的算法思路及算法实现 (2)图解括号表示法构建二叉树 (3)测试程序  二、扩展二叉树 (1)扩展二叉树构建二叉树的算法思路及算法实现 (2)测试程序         二叉树的创建方法有很多种,在这里我介绍两种

    2024年02月06日
    浏览(52)
  • 解除Excel限制编辑的两种方法

    Excel被限制编辑,是很容易看得出的,一般会出现不能编辑,不能复制粘贴、打印等操作,也会出现下面提示。 还有一种限制是设置成只读模式,在打开Excel表格时就会出现提示。   我们可以根据不同的限制设置,用以下两种方法来解除。 首先,我们可以看下Excel表格中【审

    2024年02月10日
    浏览(77)
  • Linux中重启Redis的两种方法

    在Redis中我们通常会修改redis.conf来配置我们的Redis,但是配置完后需要重启Redis才能生效,下面我将分享我学习到的两种重启方式, 推荐使用第二种 1、kill -9 Redis进程号 上述查看Redis的进程号的命令,运行结果如下: 2、通过客户端告诉Redis服务器重新启动(安全) 上述的 192

    2024年01月25日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包