思路
使用頭插法逆轉鏈表
注:鏈表一般為操作方便,頭結點不存值,是一個虛擬節點
代碼
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/class Solution {public ListNode reverseList(ListNode head) {//使用頭插法//虛擬節點,ListNode dummynode=new ListNode(0);dummynode.next=null;ListNode curr = head;ListNode q=null;while (curr != null) {//把第一個結點保存一下q=dummynode.next;//把當前結點接在虛擬節點后面dummynode.next=curr;//當前結點移到下一個結點curr=curr.next;//把之前的拼回去dummynode.next.next=q;}return dummynode.next;}
}