今天遇到一个题实现单向链表的反转,希望各位大虾帮忙
解决方案 »
- 团队遵守Command和Query分离的编码习惯能让后来者快速融入开发
- 多态的覆盖在JVM上是怎么实现的。。
- JAVA中一个String的内容包含另一个String的内容的语句是什么?
- 求java完整的读取ini的所有section及key及删除section或key等
- 这两种情况对于abc值的影响
- 怎么样截取网址中的歌曲名?
- 如何解决这个无任何继承类中读取图象的width和height?50分,解决马上给分
- abstract类不能创建实例,但为什么其子类也不能创建呢
- 如何用Java做一棵树在web上显示,而他人浏览时不需下载控件
- 为什么我的Japplet在浏览器上不能显示,在集成开发环境中可以
- JDOM解析XML时JDK的版本是多少
- j2se 工程如何加入servlet?
public class NodeTest
{ int data; NodeTest next = null; public NodeTest(int data)
{
this.data = data;
} public static NodeTest convert(NodeTest h)
{ NodeTest b = h; NodeTest a = null; while (h.next != null)
{ a = h.next; h.next = a.next; a.next = b; b = a; } return b;
} public static void main(String[] args)
{
NodeTest head = new NodeTest(0);
NodeTest tail = head; for (int i = 1; i < 10; ++i)
{
NodeTest p = new NodeTest(i);
tail.next = p;
tail = p; } head = convert(head);
while (head.next != null)
{ System.out.println(head.data);
head = head.next; }
}}
int size = list.size();
ListIterator<Object> front = (ListIterator<Object>) list.listIterator();
ListIterator<Object> back = (ListIterator<Object>) list
.listIterator(size);
for (int i = 0; i < size / 2; i++) {
Object frontNext = front.next();
Object backPrev = back.previous();
front.set(backPrev);
back.set(frontNext);
}
}
如:
初始化
temp1 = a;
temp2 = a.next;
temp3 = a.next.next;
然后
temp2.next = temp1;
temp1 = temp2;
temp2 = temp3;
temp3 = temp3.next;
如此循环下去即可
请用C或者Java语言写出实现将单向链表顺序反转的函数。
函数的输入为一个指向单向链表表头的指针,输出为指向反转顺序的单向链表表头的指针函数名称:
C: ListItem* reverseList(ListItem* pHead)
Java: ListItem printArray(ListItem pHead)
ListItem* reverseList(ListItem *pHead)
{
ListItem *p1,*p2;
p1=pHead;
p2=0;
while(p1!=0)
{
pHead=p1;
p1=p1->next;
pHead->next=p2;
p2=pHead;
}
return pHead;
}
for(int i=list2.size()-1;i>=0;i--){
list1.add(list2.get(i));
}类似这样的结构了,实现了ArrayList的反转