逆置/反转单链表(C语言)
来源:互联网 发布:梅甘娜rs 知乎 编辑:程序博客网 时间:2024/06/05 07:35
1、逆置链表:前插法
void ReverseList(PSListNode* pHead){ if (NULL == *pHead) { return; } else { //创建一个新的空链表,遍历pHead指向的链表里的所有节点,每找到一个,就前插到新链表里 PSListNode pNewHead = *pHead; *pHead = (*pHead)->pNextNode; //第一次前插到新链表里的结点,是新链表的尾节点,所以要使它的下一个结点为空 pNewHead->pNextNode = NULL; while (NULL != *pHead) { PSListNode pNode = *pHead; *pHead = (*pHead)->pNextNode; pNode->pNextNode = pNewHead; pNewHead = pNode; } *pHead = pNewHead; }}
2、逆置链表:三指针法
void ReverseList(PSListNode* pHead){ assert(pHead); if ((*pHead == NULL) || ((*pHead)->pNextNode) == NULL) { return; } else { PSListNode pPreNode = *pHead; PSListNode pCurNode = (*pHead)->pNextNode; PSListNode pOffNode = (*pHead)->pNextNode->pNextNode; PSListNode pNode = NULL; while (1) { pCurNode->pNextNode = pPreNode; pPreNode->pNextNode = pNode; pNode = pPreNode; if (pOffNode == NULL) { break; } else { pPreNode = pCurNode; pCurNode = pOffNode; pOffNode = pOffNode->pNextNode; } } *pHead = pCurNode; }}
0 0
- 逆置/反转单链表(C语言)
- C语言反转单链表
- C语言反转单链表
- 单链表反转C语言实现
- 单链表反转C语言实现
- 单链表反转C语言实现
- C语言:单链表的反转
- 单链表反转(C++)
- C语言:【单链表】逆置反转单链表
- (c语言)字符串的反转函数
- (C语言)字符串反转相关问题
- (C语言)递归实现字符串反转
- C语言反转数组(reverse函数)
- C语言字符串反转
- 字符串反转(C语言)
- C语言字符串反转
- C语言字符串反转
- 数据结构 - 反转单链表(C++)
- VPN column: PPTP(1)--connecting process
- BZOJ1502: [NOI2005]月下柠檬树
- 一个面试大牛的经历
- setImageResource和setBackgroundResource的区别
- 一键清除SD卡数据
- 逆置/反转单链表(C语言)
- VPN网络访问问题
- Leetcode(59)-Count Primes
- 利用STL的set可以使查询效率变高(2016.4浙江科技学院校赛)
- 码农小汪-设计模式-工厂方法模式 每一产品都有一个具体的实现工厂
- 【GDOI2016模拟3.9】暴走的图灵机
- Android滑动(二)——滑动方法之layout() 及相应封装API
- 友盟自动更新产品介绍
- iOS 隐藏多余的cell