模擬創建單向鏈表
阿新 • • 發佈:2018-08-28
nod tar .get ++ static 單向鏈表 data sys void 節點類:
public class ListNode {
int data;//數據
ListNode next;//指針
ListNode(int x){data=x;}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public ListNode getNext() {
return next;
}
public void setNext(ListNode next) {
this.next = next;
}
二:生成鏈表(頭插法 尾插法)
}
return headNode;
}
public static ListNode createEndAddNodeList(int[] dataArray){//頭插法插入數據
ListNode headNode=new ListNode(0);//創建頭結點
headNode.setNext(null);
ListNode pointNode=headNode;//指針節點 一直指向尾節點
for(int i=0;i<dataArray.length;i++){
ListNode newNode=new ListNode(dataArray[i]);
newNode.setNext(pointNode.getNext());
pointNode.setNext(newNode);
pointNode=newNode;
}
return headNode;
}
public class ListNode {
int data;//數據
ListNode next;//指針
ListNode(int x){data=x;}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public ListNode getNext() {
return next;
}
public void setNext(ListNode next) {
this.next = next;
}
二:生成鏈表(頭插法 尾插法)
public class ListNodeUtil { //鏈表
public static ListNode createHeadAddNodeList(int[] dataArray){//頭插法插入數據
ListNode headNode=new ListNode(0);//創建頭結點
headNode.setNext(null);
for(int i=0;i<dataArray.length;i++){
ListNode newNode=new ListNode(dataArray[i]);//賦值數據
newNode.setNext(headNode.getNext());//上一節點的指向賦值給下一節點的指向
headNode.setNext(newNode);//頭結點指向尾部節點
return headNode;
}
public static ListNode createEndAddNodeList(int[] dataArray){//頭插法插入數據
ListNode headNode=new ListNode(0);//創建頭結點
headNode.setNext(null);
ListNode pointNode=headNode;//指針節點 一直指向尾節點
for(int i=0;i<dataArray.length;i++){
ListNode newNode=new ListNode(dataArray[i]);
newNode.setNext(pointNode.getNext());
pointNode=newNode;
}
return headNode;
}
public static void printHeadAddNodeList(ListNode start){
if(start!=null){
System.out.println(start.getData());
start=start.getNext();
printHeadAddNodeList(start);//遞歸輸出數據
}
}
}
頭插法與尾出發的區別在與尾插法多了一個指針節點,該節點一直指向鏈表的尾部
模擬創建單向鏈表