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

链表逆置For Java

2015-07-14 11:29 531 查看
Java版链表逆置

定义数据结构:

/**
* 链表的数据结构
*/
class LinkedListArray {
/**
* value
*/
Object value;

/**
* 下个节点
*/
LinkedListArray next = null;

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

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

public Object getValue() {
return value;
}

public LinkedListArray getNext() {
return next;
}
}
链表逆置方法:

/**
* Created by hyson on 15/7/14.
*/
public class ListReverse {
public static void main(String[] args) {
LinkedListArray llr1 = new LinkedListArray();
llr1.setValue("链");
LinkedListArray llr2 = new LinkedListArray();
llr2.setValue("表");
LinkedListArray llr3 = new LinkedListArray();
llr3.setValue("逆");
LinkedListArray llr4 = new LinkedListArray();
llr4.setValue("置");
llr1.setNext(llr2);
llr2.setNext(llr3);
llr3.setNext(llr4);

print(llr1);
llr1 = reverse(llr1);
print(llr1);
}

public static void print(LinkedListArray head) {
LinkedListArray tmp = head;
while (tmp != null) {
System.out.print(tmp.getValue());
tmp = tmp.next;
}
System.out.println();
}

/**
* 链表逆置
* @param listHead 表头
* @return 逆置的链表
*/
public static LinkedListArray reverse(LinkedListArray listHead) {
LinkedListArray lastList,//剩余链表
tmpList, //暂存链表
result;//结果链表引用
lastList = listHead;
tmpList = result = null;//暂存链表与结果集初始化为空
while (lastList != null) {
tmpList = lastList.next;//暂存链表暂存除首节点外的剩余链表
lastList.next = result;//将首节点放入剩余链表头
result = lastList;//引用指向链表第一个位置
lastList = tmpList;//剩余链表引用重新指向暂存的剩余链表
}
return result;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: