逆序输出链表
2014-06-09 16:29
337 查看
输入一个链表的头结点,从尾到头反过来输出每个结点的值。链表结点定义如下:
有疑问。。。。关于函数的参数传递
#include <iostream>
using namespace std;
struct ListNode { int m_nKey; ListNode* m_pNext; };
//两个函数声明会产生完全不同的结果...
//找大神解释...
//void ReverList(ListNode * head)
void ReverList(ListNode * &head)
{
if(head == NULL || head -> m_pNext == NULL)
return;
ListNode * f = head -> m_pNext;
ListNode * b = head;
while(f)
{
ListNode * tmp = f->m_pNext;
f->m_pNext = b;
b = f;
f = tmp;
}
head -> m_pNext = NULL;
head = b;
}
void printList(ListNode *head)
{
if(head == NULL)
return;
ListNode * cur = head;
while(cur)
{
cout<<cur->m_nKey<<" ";
cur = cur->m_pNext;
}
cout<<endl;
}
int main()
{
ListNode *head = new ListNode;
head ->m_nKey = 1;
head -> m_pNext = NULL;
ListNode * cur = head;
for(int i = 2;i<5;i++)
{
ListNode *tmp = new ListNode;
tmp -> m_nKey = i;
tmp ->m_pNext = NULL;
cur->m_pNext = tmp;
cur = cur->m_pNext;
}
cout<<"init"<<endl;
printList(head);
ReverList(head);
cout<<"after Reverse"<<endl;
printList(head);
system("pause");
return 0;
}
struct ListNode { int m_nKey; ListNode* m_pNext; };
有疑问。。。。关于函数的参数传递
#include <iostream>
using namespace std;
struct ListNode { int m_nKey; ListNode* m_pNext; };
//两个函数声明会产生完全不同的结果...
//找大神解释...
//void ReverList(ListNode * head)
void ReverList(ListNode * &head)
{
if(head == NULL || head -> m_pNext == NULL)
return;
ListNode * f = head -> m_pNext;
ListNode * b = head;
while(f)
{
ListNode * tmp = f->m_pNext;
f->m_pNext = b;
b = f;
f = tmp;
}
head -> m_pNext = NULL;
head = b;
}
void printList(ListNode *head)
{
if(head == NULL)
return;
ListNode * cur = head;
while(cur)
{
cout<<cur->m_nKey<<" ";
cur = cur->m_pNext;
}
cout<<endl;
}
int main()
{
ListNode *head = new ListNode;
head ->m_nKey = 1;
head -> m_pNext = NULL;
ListNode * cur = head;
for(int i = 2;i<5;i++)
{
ListNode *tmp = new ListNode;
tmp -> m_nKey = i;
tmp ->m_pNext = NULL;
cur->m_pNext = tmp;
cur = cur->m_pNext;
}
cout<<"init"<<endl;
printList(head);
ReverList(head);
cout<<"after Reverse"<<endl;
printList(head);
system("pause");
return 0;
}
相关文章推荐
- 简单链表添加,然后顺序或逆序输出
- [记着玩]java模拟链表逆序输出结果
- 数据结构--单链表逆序输出
- 用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串
- 逆序输出链表节点
- 算法学习十四----逆序输出链表
- 如何逆序输出单链表?
- 删除链表中的重复节点、剩余节点逆序输出
- 输入k 实现链表每k项都逆序输出
- 单链表的基本操作,正序/逆序建表(尾插法/头插法)、计算单链表长度、输出单链表内容、插入、删除,给出完整代码
- 链表——逆序输出
- [面试] 算法(七)—— 逆序输出链表
- 剑指offer例题5—逆序输出链表
- 输入k 实现链表每k项都逆序输出
- 逆序输出单链表结点值
- 逆序输出链表
- 链表的创建、取长、输出、插入、删除、逆序
- 剑指Offer03 逆序输出链表&链表逆序
- 单链表[建表、输出、插入、删除、逆序]
- 链表元素的逆序输出