class Node {
public int value;
public Node next;
}
private static Node GenerateList(params int[] array) {
Node node = null;
for (int i = a.Length - 1; i >= 0; i--) {
node = new Node { value = array[i], next = node };
}
return node;
}
此GenerateList方法從陣列中生成串列,但我無法理解node = new Node { value = array[i], next = node };.
例如,在第一個回圈中:node 等于一個新節點,但新節點的下一個節點指向舊節點。在第二個回圈中,第二個新節點等于第一個節點,第二個新節點的節點將指向第一個節點,但是第二個節點會發生什么?
我不明白什么?
uj5u.com熱心網友回復:
這是一個array對link list演算法。
輸入:陣列
輸出:鏈表
起始節點設定為陣列的最后一個元素。使用next陣列中最近的項設定,該項將在回圈的下一次迭代中設定。在每一步中,您在陣列中向后移動直到陣列的開頭。
這個例子可以幫助:

uj5u.com熱心網友回復:
讓我試著解釋一下,但不確定這就是你要找的。
它似乎將 Array 轉換為 LinkList,更具體地說是 Queue。
現在,如果您仔細查看 for 回圈,那么它的順序是相反的。
在第一次迭代節點= null。那時它將從陣列中獲取最后一個元素并創建節點并在空值旁邊分配。此程序為節點變數分配新的參考。
現在進行第二次迭代,它會將陣列中的倒數第二個值分配給節點值,然后它將先前創建的節點分配為下一個。
這將達到第一個值和節點。
如果您只有節點的參考,并且您開始尋找下一個節點是否存在,那么它將上升到陣列的最后一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/360817.html
