1
A
回答
1
如果「最後一個節點」指向某個其他節點,那麼它不是真正的最後一個節點,是嗎?更不用說這會拉長並可能破壞普遍接受的「清單」的定義。
通常找到你會做一些這樣
Node *current = list.start,
*next = current.next;
while (next != null)
{
current = next;
next = current.next;
}
print("Last node is " + current->value);
但是最後一個元素,這是假定你的「最後一個節點」不實際指向空。否則,你會陷入無限循環。
通常是好做法,以保持一個指針列表的最後一個節點,以及第一,所以這是一種不依賴指向空的最後一個節點上一個簡單的解決方案。
0
嗯,我想放一個「is_visited」布爾值節點將滿足就好:
//make sure the counters of all nodes are 0
cur=head_node
cur->visit=1
while(cur->next!=null AND cur->next->visit==0) {
cur=cur->next
cur->visit=1
}
//cur points to the last node
+0
我不會更改節點的結構,因爲我有存儲在其中的數據。而且我在鏈表中有50000個以上的節點。 –
+0
@Raaga然後你必須遍歷每個節點的列表,不是嗎?最壞情況O(N^2)。這是你的電話 – aec
0
即使你可以使用一個尾指針單鏈表。它仍然是單鏈表,但它避免了O(n=1)
找到最後一個節點。
相關問題
- 1. 如何查找最後一個元素
- 2. 查找單鏈接列表中的第3個最後一個元素 - 算法
- 3. 查找鏈接結構堆中的最後一個元素
- 4. 如何在兩個鏈表中查找最新的等元素?
- 5. 找到第k個鏈接列表的最後一個元素
- 6. 尋找k到第一個單向鏈表的最後一個元素
- 7. 刪除單鏈表中的最後一個元素
- 8. 重複最後一個元素鏈表
- 9. Meteor MongoDB查找最後一個元素
- 10. hibernate查找表中最後一個元素的問題
- 11. 如何刪除O(1)中單鏈表的最後一個元素?
- 12. 刪除單鏈表的最後一個元素不起作用
- 13. 查找特定元素的最後一個子元素
- 14. 查找單錶鏈(SQL Server)的最後一個記錄
- 15. 如何檢查python列表的最後一個元素?
- 16. 如何查找R中列表中最大的N個元素?
- 17. 高效地從鏈表中的最後一個元素中找到第nth
- 18. 在鏈表中查找兩個最小元素
- 19. 如何獲取多個元素中的最後一個元素?
- 20. 遞歸地查找第k個到單個鏈接列表的最後一個元素-Python
- 21. 在ArrayList的最後一個元素中查找對象Java
- 22. 查找std :: vector中的最後一個非零元素
- 23. 快速查找Django QuerySet中的最後一個元素?
- 24. 查找html中的最後一個活動元素
- 25. 查找陣列的最後一個元素中JSON列類型
- 26. 查找cumsum中的最後一個元素
- 27. 如何刪除C中鏈接列表中的最後一個元素?
- 28. 查找和只有一個遍歷除在(單)鏈表元素的最後一次出現
- 29. 如何通過jQuery的最後一位查找元素?
- 30. 查找每個循環的最後一個元素,無論元素類型的
這個問題還不清楚。如果您對循環檢測感興趣:查找Floyd的算法。 – wildplasser