首先,构造简单单链表类SingleListNode, 可实现简单添加及链表反转。
public class SingleListNode {
private Node head = null;
//插入链表头部;
public void insertToHead(int data){
Node newNode = new Node(data, null);
if(head == null){
head = newNode;
}else{
newNode.next = head;
head = newNode;
}
}
//插入链表尾部;
public void insertToTail(int data){
Node newNode = new Node(data, null);
if(head == null){
head = newNode;
}else{
Node q = head;
while(q.next != null){
q = q.next;
}
newNode.next = q.next;
q.next = newNode;
}
}
//单链表的反转并输出;
public void reverseList(){
if(head == null){
return;
}
else{
Node pre = null;
while(head.next != null){
Node newNode = head.next;
head.next = pre;
pre = head;
head = newNode;
}
head.next = pre;
}
}
//打印链表;
public void printAll() {
Node p = head;
while (p != null) {
System.out.print(p.data + " ");
p = p.next;
}
System.out.println();
}
}
其中Node类:
public class Node {
int data;
Node next;
public Node(int data, Node next){
this.data = data;
this.next = next;
}
public int getData(){
return data;
}
}
实现类:
public class SingleListNodeTest01 {
public static void main(String[] args) {
SingleListNode sln = new SingleListNode();
int[] arr = {1,2,3,4,5,6};
for (int i = 0; i < arr.length; i++) {
sln.insertToTail(arr[i]);
}
sln.printAll();
sln.reverseList();
sln.printAll();
}
}
测试结果:
以上,小记。