// File: ListNode.cs
// Created Time: 2022-12-16
// Author: mingXta (1195669834@qq.com)
namespace hello_algo.include
{
///
/// Definition for a singly-linked list node
///
public class ListNode
{
public int val;
public ListNode? next;
///
/// Generate a linked list with an array
///
///
public ListNode(int x)
{
val = x;
}
///
/// Generate a linked list with an array
///
///
///
public static ListNode? ArrToLinkedList(int[] arr)
{
ListNode dum = new ListNode(0);
ListNode head = dum;
foreach (int val in arr)
{
head.next = new ListNode(val);
head = head.next;
}
return dum.next;
}
///
/// Get a list node with specific value from a linked list
///
///
///
///
public static ListNode? GetListNode(ListNode? head, int val)
{
while (head != null && head.val != val)
{
head = head.next;
}
return head;
}
public override string? ToString()
{
List list = new();
var head = this;
while (head != null)
{
list.Add(head.val.ToString());
head = head.next;
}
return string.Join("->", list);
}
}
}