码迷,mamicode.com
首页 > 其他好文 > 详细

模拟创建单向链表

时间:2018-08-28 16:17:22      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:aar   链表   create   print   lis   new   star   list   单向链表   

节点类:
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.setNext(newNode);
pointNode=newNode;
}
return headNode;
}

public static void printHeadAddNodeList(ListNode start){

  if(start!=null){
      System.out.println(start.getData());
      start=start.getNext();
      printHeadAddNodeList(start);//递归输出数据

  }

}

}

头插法与尾出发的区别在与尾插法多了一个指针节点,该节点一直指向链表的尾部

模拟创建单向链表

标签:aar   链表   create   print   lis   new   star   list   单向链表   

原文地址:http://blog.51cto.com/13919712/2165463

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!