using System.Collections.Generic; /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ public class Solution { private List ListAsList(ListNode head) { var result = new List(); for (var node = head; node != null; node = node.next) { result.Add(node); } return result; } public void ReorderList(ListNode head) { var nodes = ListAsList(head); ListNode node = head; for (int i = 1, j = nodes.Count - 1; i <= j; ++i, --j) { node.next = nodes[j]; node = node.next; node.next = nodes[i]; node = node.next; } node.next = null; } }