C 如何在链表中跳过起始节点
我正在努力学习指针。 我的情况是,我希望遍历第二个节点之后的链表(从第三个节点开始) 我的基本想法是遍历链表:C 如何在链表中跳过起始节点,c,algorithm,data-structures,linked-list,singly-linked-list,C,Algorithm,Data Structures,Linked List,Singly Linked List,我正在努力学习指针。 我的情况是,我希望遍历第二个节点之后的链表(从第三个节点开始) 我的基本想法是遍历链表: while(temp!=NULL) { temp=temp->next; } 所以我想要的是这个链表必须从第三个位置开始。有人能帮我准备一下逻辑吗我对使用任何内置函数不感兴趣。 我将在其他应用程序中使用此逻辑。如果您的列表是temp,则temp也是第一个元素 然后temp->next将是第二个元素,temp->next->next将是第三个元素 所以如果你写 temp =
while(temp!=NULL)
{
temp=temp->next;
}
所以我想要的是这个链表必须从第三个位置开始。有人能帮我准备一下逻辑吗我对使用任何内置函数不感兴趣。
我将在其他应用程序中使用此逻辑。如果您的列表是
temp
,则temp
也是第一个元素
然后temp->next
将是第二个元素,temp->next->next
将是第三个元素
所以如果你写
temp = temp->next->next;
temp
将指向第三个元素,您可以从那里开始遍历。如果您的列表是temp
,则temp
也是第一个元素
Node *nth(Node *head, int nth){//nth : 0 origin
while(nth && head){
--nth;
head = head->next;
}
return head;
}
...
Node *third = nth(head, 2);
然后temp->next
将是第二个元素,temp->next->next
将是第三个元素
所以如果你写
temp = temp->next->next;
temp
将指向第三个元素,您可以从那里开始遍历
Node *nth(Node *head, int nth){//nth : 0 origin
while(nth && head){
--nth;
head = head->next;
}
return head;
}
...
Node *third = nth(head, 2);