ListNode* reverseList(ListNode* head) {
vector<int> vals;
for (ListNode* node = head; node; node = node->next) vals.push_back(node->val);
reverse(vals.begin(), vals.end());
int i = 0;
for (ListNode* node = head; node; node = node->next) node->val = vals[i++];
return head;
}
public ListNode reverseList(ListNode head) {
List<Integer> vals = new ArrayList<>();
for (ListNode node = head; node != null; node = node.next) vals.add(node.val);
Collections.reverse(vals);
int i = 0;
for (ListNode node = head; node != null; node = node.next) node.val = vals.get(i++);
return head;
}
def reverse_list(head):
vals = []
node = head
while node:
vals.append(node.val)
node = node.next
vals.reverse()
node, i = head, 0
while node:
node.val = vals[i]
i += 1
node = node.next
return head
function reverseList(head: ListNode | null): ListNode | null {
const vals: number[] = [];
for (let node = head; node; node = node.next) vals.push(node.val);
vals.reverse();
for (let node = head, i = 0; node; node = node.next) node.val = vals[i++];
return head;
}
ListNode* reverseList(ListNode* head) {
if (!head || !head->next) return head;
ListNode* newHead = reverseList(head->next);
head->next->next = head;
head->next = nullptr;
return newHead;
}
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) return head;
ListNode newHead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
def reverse_list(head):
if not head or not head.next:
return head
new_head = reverse_list(head.next)
head.next.next = head
head.next = None
return new_head
function reverseList(head: ListNode | null): ListNode | null {
if (!head || !head.next) return head;
const newHead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* curr = head;
while (curr) {
ListNode* next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
def reverse_list(head):
prev = None
curr = head
while curr:
nxt = curr.next
curr.next = prev
prev = curr
curr = nxt
return prev
function reverseList(head: ListNode | null): ListNode | null {
let prev: ListNode | null = null;
let curr = head;
while (curr) {
const next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
}
ListNode* reverseList(ListNode* head) {
if (!head || !head->next) return head;
ListNode dummy(0, head);
ListNode* tail = head;
while (tail->next) {
ListNode* moved = tail->next;
tail->next = moved->next;
moved->next = dummy.next;
dummy.next = moved;
}
return dummy.next;
}
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) return head;
ListNode dummy = new ListNode(0, head);
ListNode tail = head;
while (tail.next != null) {
ListNode moved = tail.next;
tail.next = moved.next;
moved.next = dummy.next;
dummy.next = moved;
}
return dummy.next;
}
def reverse_list(head):
if not head or not head.next:
return head
dummy = ListNode(0, head)
tail = head
while tail.next:
moved = tail.next
tail.next = moved.next
moved.next = dummy.next
dummy.next = moved
return dummy.next
function reverseList(head: ListNode | null): ListNode | null {
if (!head || !head.next) return head;
const dummy = new ListNode(0, head);
const tail = head;
while (tail.next) {
const moved = tail.next;
tail.next = moved.next;
moved.next = dummy.next;
dummy.next = moved;
}
return dummy.next;
}