由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Reversing a singly linked list
相关主题
C++ 里push_back 一问删去单向LINKED LIST中的一个节点,假设HEAD is unknown
how to reverse a HUGE list?[合集] 考考大家一道有关链表的问题
Reverse Words in a Stringstd::list::iterator question
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!reverse words, not the Microsoft one!!!
请教 C++ 题reverse LL recursively
问一个关于C++指针的问题考考你的能力。
C++11里list迭代器判空仍然知道具体的list对象吗?问一个简单的binary tree 问题
再问一个弱问题:为什么程序地址0-0x08000000是不可用的 (转载)请教一个程序调用的内存问题 (转载)
相关话题的讨论汇总
话题: node话题: out话题: reversing话题: list话题: singly
进入Programming版参与讨论
1 (共1页)
s***i
发帖数: 49
1
我看这么algorithm看来看去看不出 list 会被成功reverse. 我试着作图,但是一走两
步就乱套了。 大家谁能做个简单的图让我看明白?
node *reverse (node *in) {
node *out = NULL;
while (in) {
node *tmp = in->next;
in->next = out;
out = in;
in = tmp;
}
return out;
}
a**a
发帖数: 416
2
这个还需要作图吗? 你把in看作是输入list, out就是输出list,
这个算法就是不停地把in的head卸下移到out的头上去。

【在 s***i 的大作中提到】
: 我看这么algorithm看来看去看不出 list 会被成功reverse. 我试着作图,但是一走两
: 步就乱套了。 大家谁能做个简单的图让我看明白?
: node *reverse (node *in) {
: node *out = NULL;
: while (in) {
: node *tmp = in->next;
: in->next = out;
: out = in;
: in = tmp;
: }

F********g
发帖数: 753
3
l*****d
发帖数: 359
4
先把第一个node变成tail, 然后把第二个的node插到前面,然后把next node再插到最
前面,依次类推。 in指向没被移动的第一个node,out指向刚被插到最前面去的node。
循环的时候1. 先把in指的node后面那个node记住(tmp),2. 然后把in指的node移到最
前面,然后3.更新out指针及4. in指针。

【在 s***i 的大作中提到】
: 我看这么algorithm看来看去看不出 list 会被成功reverse. 我试着作图,但是一走两
: 步就乱套了。 大家谁能做个简单的图让我看明白?
: node *reverse (node *in) {
: node *out = NULL;
: while (in) {
: node *tmp = in->next;
: in->next = out;
: out = in;
: in = tmp;
: }

l*****d
发帖数: 359
5
en, much easier to think in this way

【在 a**a 的大作中提到】
: 这个还需要作图吗? 你把in看作是输入list, out就是输出list,
: 这个算法就是不停地把in的head卸下移到out的头上去。

1 (共1页)
进入Programming版参与讨论
相关主题
请教一个程序调用的内存问题 (转载)请教 C++ 题
Interview Question问一个关于C++指针的问题
问个C++中重复删除指针的问题C++11里list迭代器判空仍然知道具体的list对象吗?
作为返回值得实参是用指针还是引用比较好?再问一个弱问题:为什么程序地址0-0x08000000是不可用的 (转载)
C++ 里push_back 一问删去单向LINKED LIST中的一个节点,假设HEAD is unknown
how to reverse a HUGE list?[合集] 考考大家一道有关链表的问题
Reverse Words in a Stringstd::list::iterator question
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!reverse words, not the Microsoft one!!!
相关话题的讨论汇总
话题: node话题: out话题: reversing话题: list话题: singly