- 已知一個鏈表,將該鏈表進行逆序
- 整體思路:始終持有新鏈表第一個元素的索引,老鏈表的第一個元素始終頭插到新鏈表,依次遍歷老鏈表
class LinkedNode{
int value;
LinkedNode next;
public LinkedNode(int value){
this.value=value;
}
}
public class ReverseLinkedList {
public static void main(String[] args){
LinkedNode node1=new LinkedNode(1);
LinkedNode node2=new LinkedNode(3);
LinkedNode node4=new LinkedNode(5);
node1.next=node2;
node2.next=node4;
printLinkedNode(node1);
LinkedNode reverseNode=reverseLinkedNode(node1);
printLinkedNode(reverseNode);
}
private static void printLinkedNode(LinkedNode node){
while (node!=null) {
System.out.print(node.value+",");
node=node.next;
}
System.out.println();
}
public static LinkedNode reverseLinkedNode(LinkedNode node){
LinkedNode newHead=null;
while (node!=null) {
LinkedNode currentNext=node.next;
node.next=newHead;
newHead=node;
node=currentNext;
}
return newHead;
}
}