mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 22:28:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
// File: ListNode.cs
 | 
						|
// Created Time: 2022-12-16
 | 
						|
// Author: mingXta (1195669834@qq.com)
 | 
						|
 | 
						|
namespace hello_algo.include
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Definition for a singly-linked list node
 | 
						|
    /// </summary>
 | 
						|
    public class ListNode
 | 
						|
    {
 | 
						|
        public int val;
 | 
						|
        public ListNode? next;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Generate a linked list with an array
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="x"></param>
 | 
						|
        public ListNode(int x)
 | 
						|
        {
 | 
						|
            val = x;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Generate a linked list with an array
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="arr"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        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;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Get a list node with specific value from a linked list
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="head"></param>
 | 
						|
        /// <param name="val"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static ListNode? GetListNode(ListNode? head, int val)
 | 
						|
        {
 | 
						|
            while (head != null && head.val != val)
 | 
						|
            {
 | 
						|
                head = head.next;
 | 
						|
            }
 | 
						|
            return head;
 | 
						|
        }
 | 
						|
 | 
						|
        public override string? ToString()
 | 
						|
        {
 | 
						|
            List<string> list = new();
 | 
						|
            var head = this;
 | 
						|
            while (head != null)
 | 
						|
            {
 | 
						|
                list.Add(head.val.ToString());
 | 
						|
                head = head.next;
 | 
						|
            }
 | 
						|
            return string.Join("->", list);
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |