问题描述
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
题解
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; }
}
@Test
public void testreverseList() {
ListNode list22 = new ListNode(4, null);
ListNode list21 = new ListNode(3, list22);
ListNode list20 = new ListNode(1, list21);
log.info("{}", reverseList(list20));
}
public ListNode reverseList(ListNode head) {
ListNode resultNode = null;
ListNode currentNode = head;
while (currentNode != null) {
ListNode next = currentNode.next;
currentNode.next = resultNode;
resultNode = currentNode;
currentNode = next;
}
return resultNode;
}