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

java实现链表反转

2015-11-25 16:05 471 查看
-Node.java

-LinkList.java

-Main.java

Node.java源码
public class Node{
public int data;
public Node next;
public Node(int data){
this.data = data;
this.next = null;
}
}


LinkList.java源码
/**
*该类只包含三个方法
*/
public class LinkList{
private Node root;
/**
*向链表中插入数据
*/
public void insert(int data){
Node cur = root;
if(root == null){
root = new Node(data);
return;
}
while(cur.next != null){
cur = cur.next;
}
cur.next = new Node(data);
}

/**
*反转链表
*比如:4->6->2
*反转后:2->6->4
*/
public Node invertedList(){
Node cur = null;  //指向当前节点
Node pre = null;  //指向前一节点
Node next = null; //指向后一节点
if(root == null)
return;
cur = root;
while(cur != null){
next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
//修改头节点
root = pre;
return root;
}

/**
*打印链表
*/
public void print(){
Node cur = root;
if(root == null)
return;
while(cur != null){
System.out.print(cur.data + " ");
cur = cur.next
}
}
}


Main.java源码
public class Main{
public static void main(String[] args){
LinkList list = new LinkList();
list.insert(4);
list.insert(8);
list.insert(9);
list.insert(3);
list.print();
list.invertedList();
System.out.println("\r\n" + "=========");
list.print();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: