簡體   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