反转链表
2015-09-28 09:23
375 查看
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的投结点。
方法1:定义3个指针,分别指向当前遍历到的结点、它的前一个结点及后一个结点。
测试用例:
功能测试(输入的链表含有多个结点,链表中只有一个结点)
特殊输入测试(链表头结点为NULL指针)
扩展:用递归实现同样的反转链表的功能
struct ListNode{ int m_nKey; ListNode* m_pNext; }
方法1:定义3个指针,分别指向当前遍历到的结点、它的前一个结点及后一个结点。
ListNode* ReverseList(ListNode* pHead){ ListNode* pReversedHead = NULL; ListNode* pNode = pHead; ListNode* pPrev = NULL; while (pNode != NULL){ ListNode* pNext = pNode->m_pNext; if (pNext == NULL){ pReversedHead = pNode; } pNode->m_pNext = pPrev; pPrev = pNode; pNode = pNext; } return pReversedHead; }
测试用例:
功能测试(输入的链表含有多个结点,链表中只有一个结点)
特殊输入测试(链表头结点为NULL指针)
扩展:用递归实现同样的反转链表的功能
相关文章推荐
- [C/C++]反转链表
- C#实现基于链表的内存记事本实例
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++实现简单的学生管理系统
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- Java数据结构之简单链表的定义与实现方法示例
- C语言单循环链表的表示与实现实例详解
- C++实现的链表类实例
- PHP小教程之实现链表
- C语言双向链表的表示与实现实例详解
- C语言实现输出链表中倒数第k个节点
- C++语言实现线性表之链表实例
- STL list链表的用法详细解析
- C语言创建链表错误之通过指针参数申请动态内存实例分析
- php链表用法实例分析
- JavaScript中数据结构与算法(三):链表