链表的定义
链表是链式存储结构,可以用任意一组存储单元来存储单链表中的数据元素,存储单元可以是不连续的。除了存储每个数据元素的值之外,还必须存储知识其直接后继元素的信息。定义如下的数据类存储结点信息。
//链表结点的定义
class Node{
Node next = null; // 结点域
int data; // 数据域
public Node(int data){
this.data = data;
}
}
链表的创建
给定一个数组,用链表来存储这个数组。循环遍历数组,把每个元素链接到链表中,最后返回头结点。
public class TestNode{
// 输入一个整型数组,创建成链表
public Node createLinkList(int[] arr){
Node head = new Node(arr[0]); //链表头
Node r = head; // 指向链表尾结点
for(int i=1; i<arr.length; i++){
Node pNode = new Node(arr[i]); // 新结点的产生
r.next = pNode; // 链表尾部增加新结点
r = pNode; // r更新为新加的结点
}
return head;
}
// 返回链表的长度
public int length(Node head) {
int length = 0;
Node tmp = head;
while(tmp != null){
length++;
tmp = tmp.next;
}
return length;
}
// 顺序打印链表元素信息
public void printLinkList(Node head){
Node p = head;
while(p != null){
System.out.print(p.data+"->");
p = p.next;
}
System.out.println()