日期:2014-05-20 浏览次数:20909 次
LinkedList<String> list = new LinkedList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
LinkedList<String> list1 = new LinkedList<String>();
while(list.size() > 0){
list1.addFirst(list.removeFirst());
}
System.out.println(list1);
//[d, c, b, a]
------解决方案--------------------
内存管理是由虚拟机完成的!当一个对象没有引用再指向他的时候就会被回收!大概是这样的!
第二个呢,难道只有一个一个的改节点的指针域,我知道这种方法!还是看看大神的发挥吧!!
------解决方案--------------------
栈内存:当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间
堆内存:由Java虚拟机的自动垃圾回收器管理
------解决方案--------------------
LinkedList<String> list = new LinkedList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (int i = 0; i < list.size(); i++) {
list.add(list.remove(list.size() - i - 1));
}
System.out.println(list);
------解决方案--------------------
1.JVM认为该对象没用的时候自动回收该对象,可以使用finalize()建议进行回收,但仅仅是建议,并不一定回收.
2.JAVA中有很多链表集合,至于倒置没用过
------解决方案--------------------
LinkList* reverseList(LinkList *p)
{
LinkList *q,*r;
q=(LinkList *)malloc(sizeof(LinkList));
r=(LinkList *)malloc(sizeof(LinkList));
q=p->next ; //(p表示当前节点)
r=q->next ;
while(r->next)
{
q->next=p;
p=q;
q=r;
r=r->next;
}
q->next=p;
r->next=q;
return r ; // (现在的r变成表头了)
}