节点类:
- 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);// 递归输出数据
- }
- }
- }
头插法与尾出发的区别在与尾插法多了一个指针节点, 该节点一直指向链表的尾部
来源: http://www.bubuko.com/infodetail-2745861.html