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程序员面试时的常见问题,对找工作的同学,进一步了解链表的性能,有很大的帮助。
该代码是关于链表的基本两项操作:翻转、排序,用C++语言编写,对初学链表的朋友有一定的帮助。
1. 双指针迭代翻转链表 翻转链表和交换两个变量的操作大同小异。 首先需要一个prev指针(指着当前节点的前一个节点),一个cur指针(指着当前节点) 翻转链表需要注意的一点是:链表之间靠指针连接,如果贸然将某个...
反转链表C实现
# 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表 # k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序 # 示例 : # 给定这个链表:1->2->3->...
c++链表的反转,创建链表,插入链表,链表反转,可下载直接运行。
给出一个链表和一个数k,比如链表123456,k=2,则翻转后214365,若k=3,翻转后321654,若k=4,翻转后432156,用程序实现思想:采用遍历
c++ 链表应用 链表类源代码,实现了链表的插入、删除、查找、长度、显示、比较两个链表是否相等、翻转、连个链表的链接、迭代、链表的拷贝、赋值等操作。
//表示 k 个节点后,下一个即将翻转链表的头结点//表示后续无可翻转链表//记录下一个即将翻转链表的头结点//翻转当前 k 个节点链表ListNode* ne
数据库实验 包含九个实验 有多种排序算法 链表的插入删除翻转等 树的三种遍历算法 字符串算法 移位密码 代换密码等
**0、将链表翻转** **1、判断链表是否有环** **2、寻找环的入口点** **3、计算环的节点数** **4、计算(有环)链表的节点数** **5、找出环中距任意一点最远的节点** **6、判断两个无环链表是否相交** **7、寻找两个...
C#单向链表的实现的源码
K 个一组翻转链表.md
c++实现 链表的建立 插入、删除节点 遍历链表 以及翻转链表
单向链表的建立、添加、删除、翻转(含递归翻转)、合并、查找回路、定位回路起点功能的实现。
用带表头的链表存放输入的数据,每读入一个数,按升序顺序插入到链表中,链表中允许两个结点有...链表翻转是把数据逆序(变成降序),注意,头结点不动。翻转后要再翻转一次,恢复升序后才能插入新元素,否则会出错。
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→...
BM3_链表中的节点每k个一组翻转.py
链表操作完整工程,包括链表的创建、删除、插入、翻转、排序等等。编程环境为VC6.0,完整工程,可以直接下载运行。
python python_leetcode面试题解之第25题K个一组翻转链表_python题解