查找链表的中间节点
Find middle node of linked list
>我在链表上运行了这个函数,元素按该顺序1 2 3 4 5
。当我打印返回节点的数据成员时,我的输出是2
.为什么输出2
?当我把行two = two->next
放在if
范围内时,虽然我得到了3
.我不明白为什么我会2
它的写作方式。
SLNode* mid(SLNode *head) {
SLNode *one = head;
SLNode *two = head;
while(one != nullptr) {
one = one->next;
two = two->next;
if(one != nullptr) {
one = one->next;
//two = two->next;
}
}
return two;
}
编辑::
所以我想列表实际上是5 4 3 2 1
的,它正在增加一个节点,因为元素的数量是奇数。意义。
嗯,一个是指向列表头开头的指针。两个也指向列表的开头。然后你基本上只前进两个并返回它,这是第二个元素。
相关文章:
- 反向给定链表中的K节点
- 2D数组来自文本输入,中间有空格
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- Boost Graph Library,修复节点大小
- C++A*算法并不总是在路径中具有目标节点
- 我可以擦除 std::queue 中间的节点吗?
- 尝试删除链表的头部或中间节点时出错
- 如何在列表中间释放删除的节点,而没有阀门错误
- C++ 在链表中间插入新节点时出现问题
- 在单个链接列表中间删除一个节点,仅给定对该节点的访问
- 在只给定单个链接列表中间的节点的情况下删除该节点.C++
- 从单链列表的中间删除节点
- C++正在从列表中间删除节点
- 在双向链表的中间插入一个节点
- 单链表在中间添加节点
- 查找链表的中间节点
- C++:删除单向链表中间的节点
- 如何在单遍历中找到单个链表的中间节点(如果链表的长度未给定)
- 单链表的中间节点
- 添加带有链表的中间节点