標籤:java 資料結構
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; }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
鏈表逆置For Java