`
java-mans
  • 浏览: 11711054 次
文章分类
社区版块
存档分类
最新评论

链表进行了翻转

 
阅读更多
ListNode* ReverseIteratively(ListNode* pHead)//本身就把链表进行了翻转,按顺序打印就是翻转后链表的元素
{
	ListNode* pReversedHead = NULL;
	ListNode* pNode = pHead;
	ListNode* pPrev = NULL;
	while(pNode != NULL)
	{
		// get the next node, and save it at pNext
		ListNode* pNext = pNode->m_pNext;

		// if the next node is null, the currect is the end of original 
		// list, and it's the head of the reversed list
		if(pNext == NULL)
			pReversedHead = pNode;

		// reverse the linkage between nodes
		pNode->m_pNext = pPrev;

		// move forward on the the list
		pPrev = pNode;
		pNode = pNext;
	}

	return pReversedHead;
}

分享到:
评论

相关推荐

    链表的反转 链表的翻转

    在本文中,我们将深入探讨链表及其翻转操作,这对IT行业的程序员,尤其是那些正在寻找工作的人来说,是一个必备的技能。 链表与数组不同,它不连续存储元素。每个元素(称为节点)包含数据和指向下一个节点的引用,...

    重排链表1

    找到中间节点后,我们需要将后半部分链表进行翻转。首先将中间节点的 `next` 指针设置为 `nullptr`,然后用一个新的指针 `secondlist` 指向中间节点的下一个节点,开始翻转过程。在循环中,我们不断更新 `second...

    链表翻转、排序C++

    该代码是关于链表的基本两项操作:翻转、排序,用C++语言编写,对初学链表的朋友有一定的帮助。

    c++ 链表应用 链表类源代码 原创

    7. **链表翻转**:反转链表的操作会改变链表中元素的顺序,原头结点变为尾结点,原尾结点变为头结点。 8. **连接两个链表**:将两个链表连接成一个,通常将第二个链表追加到第一个链表的末尾。 9. **迭代**:链表...

    K 个一组翻转链表1

    题目 "K 个一组翻转链表1" 是一个典型的链表操作问题,来源于 LeetCode。这个题目要求我们将一个给定的单链表按照每 k 个节点一组进行逆序排列,而剩余不足 k 个节点的部分保持原样。这里 k 是一个正整数,并且 k ...

    反转链表C实现

    每次循环中,都会对当前段内的节点进行反转操作。 ```c for (int i = 0; i ; i++) { // ... 反转操作 ... } ``` 接下来,我们来看看具体的反转逻辑: 1. **初始化变量**: - `head`:当前段的起始节点地址。 -...

    LeetCode-[链表]-翻转链表

    1. 双指针迭代翻转链表 翻转链表和交换两个变量的操作大同小异。 首先需要一个prev指针(指着当前节点的前一个节点),一个cur指针(指着当前节点) 翻转链表需要注意的一点是:链表之间靠指针连接,如果贸然将某个...

    C语言基础-C语言编程基础之Leetcode编程题解之第25题K个一组翻转链表.zip

    通过解决这道题,程序员可以锻炼对链表操作的熟练度,理解链表翻转的本质,并学习如何在C语言中高效地实现这一过程。同时,参与LeetCode的挑战也能提升编程思维和算法能力,为面试和实际工作中的问题解决打下坚实...

    数据库实验 包含九个实验 有多种排序算法 链表的插入删除翻转等

    此外,还可能涉及链表的翻转,这是一种常见的算法问题,通过改变节点之间的链接顺序来实现链表的反转。 其次,排序算法是计算机科学中的另一个核心主题。实验中提到了多种排序算法,例如冒泡排序、选择排序、插入...

    python 实现k个一组翻转链表

    # 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表 # k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序 # 示例 : # 给定这个链表:1->2->3->...

    c++链表的反转

    c++链表的反转,创建链表,插入链表,链表反转,可下载直接运行。

    HisenWu#bugfree-bear#链表翻转1

    给出一个链表和一个数k,比如链表123456,k=2,则翻转后214365,若k=3,翻转后321654,若k=4,翻转后432156,用程序实现思想:采用遍历

    K 个一组翻转链表(每次k个翻转+递归)1

    目标是给定一个单链表和一个整数 k,将链表中的节点按 k 个一组进行翻转,同时保持每组内部的相对顺序不变。如果链表的长度不是 k 的整数倍,那么剩下的部分应该保持原样。 首先,我们来看链表的定义。链表由一系列...

    C#单向链表的实现

    在编程领域,数据结构是构建复杂程序的基础,而链表作为一种基本的数据结构,被广泛应用于各种软件系统中。本文将详细讲解如何在C#中实现单向链表,结合源码解析来帮助你深入理解其内部机制。 首先,我们要知道什么...

    翻转链接.rar翻转链接.rar

    在实际应用中,链表翻转经常出现在面试题或算法练习中,以考察程序员对于数据结构和逻辑思维的理解。 翻转整个链表通常采用迭代或递归的方法。迭代方法通过三个指针(当前节点、前一个节点、临时节点)来实现,遍历...

    C#-Leetcode编程题解之第25题K个一组翻转链表.zip

    “K个一组翻转链表”要求将一个给定的单链表按照k个节点为一组进行翻转。例如,如果链表是1->2->3->4->5->6,k=2,那么翻转后应为2->1->4->3->6->5。这里的关键在于如何正确地分组并翻转链表,同时保持原始相邻节点...

    java-leetcode题解之第25题K个一组翻转链表.zip

    通过这种方式,我们可以有效地解决第25题,实现K个一组的链表翻转。 ### 总结: 解决"K个一组翻转链表"问题需要对链表的基本操作有深入理解,包括节点的创建、连接以及翻转等。在实际编程中,我们可以通过辅助指针...

    单向链表多种功能实现

    在本文中,我们将深入探讨如何实现单向链表的各种操作,包括建立链表、添加元素、删除元素、翻转链表(包括递归方法)、合并链表、查找链表中的回路以及定位回路的起点。 1. **建立链表** 建立链表通常从创建一个...

    C语言链表操作完整工程

    4. **链表的翻转**:翻转链表是一个常见的操作,可以通过迭代或递归实现。迭代方法中,我们可以维护两个指针,一个指向当前节点,另一个指向前一个节点,不断交换它们的值并移动指针,直到遍历完整个链表。例如,`...

    链表相关问题的完整代码

    **0、将链表翻转** **1、判断链表是否有环** **2、寻找环的入口点** **3、计算环的节点数** **4、计算(有环)链表的节点数** **5、找出环中距任意一点最远的节点** **6、判断两个无环链表是否相交** **7、寻找两个...

Global site tag (gtag.js) - Google Analytics