单链表反转
来源:互联网 发布:大思英语网络课程转让 编辑:程序博客网 时间:2024/04/29 20:07
挺简单的经典题, 自己写的第一个版本,变量初始化是这么做的,pPrevs = pHead, pCurrent = pHead->next, 看着也觉得怪怪的。 最后review的时候, 发现这样不会把反转前第一个节点的next置空!!!!!
修正版本:
#include "stdafx.h"#include <iostream>using namespace std;struct ListNode{int data;ListNode * pNext;};ListNode * ListInit(int num){ListNode *pNode = NULL;ListNode *pHead = new ListNode;pHead ->data = num;pHead ->pNext = NULL;ListNode *pPrevs = pHead;while (num--){pNode = new ListNode;pPrevs ->pNext = pNode;pNode ->data = num;pNode ->pNext = NULL;pPrevs = pNode;}return pHead;}ListNode * ReverseIteratively(ListNode * pHead){ListNode * pOverHead = NULL;ListNode * pPrevs = NULL;ListNode * pCurrent = pHead;ListNode * pNext = NULL;while (pCurrent != NULL){pNext = pCurrent ->pNext;pCurrent ->pNext = pPrevs;pPrevs = pCurrent;pCurrent = pNext;}pOverHead = pPrevs;return pOverHead;}int main(){ListNode *pHead = ListInit(6);ListNode *pNewHead = NULL;ListNode *pNode = pHead;while (pNode){printf("%d ", pNode->data);pNode = pNode ->pNext;}printf("\n");pNewHead = ReverseIteratively(pHead);pNode = pNewHead;while (pNode){printf("%d ", pNode->data);pNode = pNode ->pNext;}printf("\n");}
0 0
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- 反转单链表
- 单链表-反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- activity的使用(十五):surfaceview
- java中窗口关闭的响应
- 21、日期及其格式
- Android Matrix
- cocos2dx创造精灵的五种方法
- 单链表反转
- mono3.2.3+Jexus5.5+openSuSE13.1的asp.net
- 用java反射机制来测试其他类中的私有方法
- 【C语言代码】大数N的阶乘!
- test Week3
- 【Hadoop进阶之路】Hadoop部署过程中遇到的问题
- 一个Java程序员应该掌握的10项技能
- 麦博FC330低音炮拆机图(简易版)
- 记录一次让我吐血的spring3 MVC HTTP406 Json转换错误