您的位置:首页 > 编程语言 > Java开发

用java实现反转链表

2015-11-04 10:41 381 查看
用java实现反转链表:

对节点类的定义:

static class Node{
int value;
Node next;

public Node(int value) {
this.value = value;
next=null;
}

public int getValue() {
return value;
}

public void setValue(int value) {
this.value = value;
}

public Node getNext() {
return next;
}

public void setNext(Node next) {
this.next = next;
}
}


测试类:

public class Test {
public static void main(String[] args) {
Node head=new Node(0);
Node cur=null;
Node t=null;
for(int i=1;i<10;i++){
t=new Node(i);
if(i==1)
head.setNext(t);
else
cur.setNext(t);
cur=t;
}

show(head);
Node h=fanzhuan(head);
show(h);

}

private static Node fanzhuan(Node head) {
if(head==null)
return head;
Node pre=head;
Node p=head.getNext();
Node pNext=null;
while(p!=null){
pNext=p.getNext();
p.setNext(pre);
pre=p;
p=pNext;
}
head.setNext(null);
head=pre;
return head;

}

private static void show(Node head) {
if(head==null)
return;
else {
while (head!=null){
System.out.print(head.getValue()+" ");
head=head.getNext();
}
}
System.out.println();
}
运行结果:

0 1 2 3 4 5 6 7 8 9

9 8 7 6 5 4 3 2 1 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: