单链表点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。
创建单链表
定义当前节点类,在堆内存当中创建节点;
定义数据域以及下一个节点的地址域
链表在main方法中不好维护,因此需要定义一个类来创建链表
package com.qcby;
public class ListNode {
public int value;
public ListNode next;
public ListNode(int value) {
this.value = value;
}
}
package com.qcby;
public class demo {
public static void main(String[] args) {
LinkList linkList = new LinkList();
linkList.insert(5);
linkList.insert(7);
linkList.insert(8);
linkList.insert(9);
linkList.printLink();
}
}
package com.qcby;
public class LinkList {
ListNode head = null;
//创建链表,链表插入方法
public void insert(int value) {
ListNode listNode = new ListNode(value);
if(head==null) {
head = listNode;
return; //注意返回,否则会陷入死循环
}
ListNode tempNode = head;
while(tempNode.next !=null) {
tempNode = tempNode.next;
}
tempNode.next = listNode;
}
//输出
public void printLink() {
ListNode tempNode = head;
while(tempNode != null) {
System.out.println(tempNode.value);//应先作输出,在执行下一步。
tempNode = tempNode.next;
}
}
}
定义一个游标,让它从前到后进行一下遍历:tempNode = tempNode.next
链表的反转
//反转
public void fanzhuan() {
ListNode next = null;
ListNode pre = null;
while(head!=null) {
next = head.next;
head.next = pre;
pre = head;
head = next;
}
head = pre;
}
本文介绍了如何在Java中创建单链表,包括ListNode类的定义,链表的创建、插入节点以及链表反转的基本操作。通过实例展示了如何维护链表并演示了关键方法如`insert`和`fanzhuan`的使用。

498

被折叠的 条评论
为什么被折叠?



