题解 | 反转链表
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
public static void main(String[] args) {
ListNode node1 = new ListNode(1);
ListNode node2 = new ListNode(2);
ListNode node3 = new ListNode(3);
node1.next = node2;
node2.next = node3;
// while (node1!=null){
// System.out.println(node1.val);
// node1 = node1.next;
// }
ListNode listNode = new Solution().ReverseList(node1);
while(listNode!=null){
System.out.println(listNode.val);
listNode = listNode.next;
}
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode ReverseList (ListNode head) {
if (head==null){
return null;
}
// write code here
List<ListNode> list = new ArrayList<>();
list.add(head);
if(head.next!=null){
ListNode nextNode = head.next;
list.add(nextNode);
while(nextNode!=null){
list.add(nextNode);
nextNode = nextNode.next;
}
}
for(int i=list.size()-1;i>0;i--){
list.get(i).next = list.get(i-1);
}
list.get(0).next = null;
return list.get(list.size()-1);
}
}
