单链表的倒置
上一篇 /
下一篇 2016-04-12 17:08:36
/ 个人分类:算法
首先,要弄清楚一些概念:单链表可以没有头结点但一定要有头指针,如果没有头结点,那么头指针只想第一个结点。每个结点又有数据域和指向下个结点的指针(后继)。单链表的倒置可以采用头插法,遍历整个链表,将每个结点一次插入到链表的头部。
package linkedList;
public class ReverseList {
// TODO Auto-generated method stub
public static Node reverseList(Node head){
Node pre = null;
Node next = null;
while(head != null){
next = head.next;
head.next=pre;
pre = head;
head = next;
}
return pre;
}
public static void main(String[] args) {
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
Node node5 = new Node(5);
node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;
Node save = reverseList(node1);
for(;save!=null;save = save.next){
System.out.print(save.value+" ");
}
}
}
class Node{
public int value;
public Node next;
public Node(int value) {
super();
this.value = value;
}
}
收藏
举报
TAG: