gpt4 book ai didi

c - 使用单遍从链接列表中获取倒数第三个节点

转载 作者:行者123 更新时间:2023-11-30 20:48:43 26 4
gpt4 key购买 nike

我有单个链接列表,10 => 16 => 9 => 6 => 4 => 11 => 18 => 17 => 7 => 8

我没有给出(N),即节点数。

我想使用单遍从上面的链接列表中获取倒数第三个元素。我想要这个的 C 代码。请帮助我。

最佳答案

由于操作已经“得到它”,请注意,只能使用指向节点的单个指针:

node *thirdtolast(node * list){
node *pnode = list;
if(pnode == NULL || pnode->next == NULL || pnode->next->next == NULL)
return pnode;
while(pnode->next->next->next != NULL)
pnode = pnode->next;
return pnode;
}

使用两个指针会更通用、更高效:

node *thirdtolast(node * list){
node *pend = list;
node *pnode = list;
int i;
for(i = 0; i < 3; i++){
if(pend == NULL)
return list;
pend = pend->next;
}
while(pend != NULL){
pend = pend->next;
pnode = pnode->next;
}
return pnode;
}

关于c - 使用单遍从链接列表中获取倒数第三个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com