如何遍历c中的链表而不在C中销毁它?

时间:2014-02-13 00:06:59

标签: c linked-list traversal

我知道要遍历我可以制作一个临时链表并去:

while (temp->next!=NULL){
    ...}

但是,如果我想在遍历它时改变我实际列表的一个位置怎么办? 我能想到的唯一方法是从头部遍历实际的链表,但是在它到达终点后不会破坏我的链表吗?

1 个答案:

答案 0 :(得分:1)

假设您有一个列表myList,并且myList.head指向第一个元素:

temp = myList.head;
while (temp->next!=NULL){
  // do stuff with this element
  ...
  temp = temp->next; // get the next element
  }

现在你可以回去再做一次 - myList仍然是一样的,

temp = myList.head;

让你重新回到起点。