链表
链表是一种数据结构:由数据和指针构成,链表的指针指向下一个节点。
在Java中需要自己定义一个链表。链表中需要有两个属性:一个用于存放数据,一个用于存放指针
接下来定义一个链表L
class ListNode{
int val;
ListNode next;//创建一个变量next 用来作为指针指向下一个节点
ListNode(int x) { val = x; } //给每一个节点附上一个变量x
}
public class Lianbiao {
public static void main(String[] args) {
//为L链表创建5个节点
ListNode L = new ListNode(1);
ListNode L2 = new ListNode(2);
ListNode L3 = new ListNode(3);
ListNode L4 = new ListNode(4);
ListNode L5 = new ListNode(5);
//用next指针将各个节点链接起来
L.val=111;
L.next = L2;
L2.next = L3;
L3.next = L4;
L4.next = L5;
System.out.println("链表L中第一个修改后节点的值为:"+L.val);
System.out.println("链表L中第二个节点的值为:"+L.next.val);
System.out.println("链表L中第三个节点的值为:"+L.next.next.val);
System.out.println("链表L中第四个节点的值为:"+L.next.next.next.val);
System.out.println("链表L中第五个节点的值为:"+L.next.next.next.next.val);
}
}
用循环创建一个节点长度为10的链表
//创建及遍历链表
class ListNode {
int val;
ListNode next;
ListNode(int val){
this.val=val;
}
}
class Test{
public static void main(String[] args){
ListNode Listnode = new ListNode(0); //创建首节点,节点的val是0.
ListNode nextNode; //声明一个变量用来在移动过程中指向当前节点
nextNode=Listnode; //指向首节点,这样两个结点的指针指向同一个结点
//创建链表
for(int i=1;i<10;i++){
ListNode node = new ListNode(i); //生成新的节点
nextNode.next=node; //把新节点连起来
nextNode=nextNode.next; //当前节点往后移动
} //当for循环完成之后 nextNode指向最后一个节点,
nextNode=Listnode; //重新赋值让它指向首节点
print(nextNode); //打印输出
}
//打印输出方法
static void print(ListNode listNoed){
//创建链表节点
while(listNoed!=null){
System.out.println("节点:"+listNoed.val);
listNoed=listNoed.next;
}
System.out.println();
}
}