30分钟 在线编写,讲道理文本开发速度有些慢
public class Main {
static class Node {
int value;
Node next;
public Node(int data) {
value = data;
}
}
static class Link{
public Link(){}
Node head;
public void addNode(int[] a){
for (int i=0;i<a.length;i++){
Node newNode = new Node(a[i]);
if(head == null){
head = newNode;
continue;
}
Node temp = head;
while(temp.next != null){
temp = temp.next;
}
temp.next = newNode;
}
}
}
// 输出链表
public static void printLink(Node head) {
for (Node p = head; p != null; p = p.next) {
System.out.print(p.value + " ");
}
}
// 两两翻转链表
public static Node fanZhuan(Node head) {
if (head == null || head.next == null)
return head;
Node currentNode = null;
Node nextNode = null;
Node temp = null;
for (currentNode = head; currentNode != null && currentNode.next != null; currentNode = currentNode.next) {
nextNode = currentNode.next;
if (currentNode == head) {
currentNode.next = nextNode.next;
nextNode.next = currentNode;
head = nextNode;
} else {
currentNode.next = nextNode.next;
nextNode.next = currentNode;
temp.next = nextNode;
}
temp = currentNode;
currentNode = nextNode.next;
}
return head;
}
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
Link link = new Link();
link.addNode(arr);
printLink(link.head);
System.out.println("\n");
Node head = fanZhuan(link.head);
printLink(head);
}
}