Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在链表中跳过起始节点_C_Algorithm_Data Structures_Linked List_Singly Linked List - Fatal编程技术网

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);