繁体   English   中英

在 c# 中创建链表时元素未正确插入

[英]Elements are not inserting properly while creating a linked list in c#

对于单链表,我有这样的节点结构。

public class ListNode {
      public int val;
      public ListNode next;
      public ListNode(int val=0, ListNode next=null) {
          this.val = val;
          this.next = next;
      }
 }

我正在尝试创建一个喜欢的列表

//requiredDigit = 123456

ListNode finalNode = new ListNode();
        
for(int i=0; i < requiredDigit.Length; i++){
        finalNode.val =  requiredDigit[i] - '0';
        finalNode.next =  new ListNode();
}

每当我尝试这种方法时,列表都被创建为60 ,第一个元素就被遗漏了。

这里的问题是您没有移动到链表链中的下一个节点。 目前您的解决方案不会更改finalNode的值; 它停留在同一个实例上,没有任何进展,所以你最终只是覆盖了起始节点。 val值从 1 到 2 再到 3,等等,但都在同一个节点中。

这是一个潜在的解决方案。 我敢肯定有一个更优雅的,但这行得通:

ListNode startNode = null, finalNode = null, iterNode;

for(int i=0; i < requiredDigit.Length; i++)
{
    if (startNode == null)
    {
        startNode = new ListNode(requiredDigit[i] - '0');
        finalNode = head;
    }
    else if (finalNode.next == null)
    {
        finalNode.next = new ListNode(requiredDigit[i] - '0');
        finalNode = finalNode.next;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM