1
0
Fork 0
mirror of https://gitlab.com/mfocko/LeetCode.git synced 2024-09-19 17:56:55 +02:00

cs: add «143. Reorder List»

Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
Matej Focko 2024-03-23 21:38:06 +01:00
parent 7dc90ebe06
commit 54e3ac8c5a
Signed by: mfocko
GPG key ID: 7C47D46246790496

38
cs/reorder-list.cs Normal file
View file

@ -0,0 +1,38 @@
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<ListNode> ListAsList(ListNode head) {
var result = new List<ListNode>();
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;
}
}