题解 | 反转链表
反转链表
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); } }