c++遍历单向链表并返回链表某一节点
时间: 2023-06-28 09:08:22 浏览: 82
c++单向链表
以下是遍历单向链表并返回链表某一节点的示例代码:
```c++
struct Node {
int data;
Node* next;
};
Node* findNode(Node* head, int val) {
Node* curr = head;
while (curr != nullptr) {
if (curr->data == val) {
return curr;
}
curr = curr->next;
}
return nullptr;
}
```
在上述示例代码中,我们首先定义了一个 `Node` 结构体,其中包含了一个整型变量 `data` 和一个指向下一个节点的指针 `next`。
接下来,我们定义了一个名为 `findNode` 的函数,该函数接收两个参数:一个指向链表头节点的指针 `head` 和一个需要查找的值 `val`。在函数中,我们使用一个 `curr` 指针来遍历整个链表,如果当前节点的值等于需要查找的值,那么就返回该节点的指针;否则,继续遍历下一个节点。如果整个链表都遍历完了还没有找到需要查找的值,那么就返回 `nullptr` 表示未找到。
使用示例:
```c++
int main() {
Node* head = new Node{1, nullptr};
head->next = new Node{2, nullptr};
head->next->next = new Node{3, nullptr};
Node* node = findNode(head, 2);
if (node != nullptr) {
std::cout << "Found node with value " << node->data << std::endl;
} else {
std::cout << "Node not found" << std::endl;
}
return 0;
}
```
在上述示例中,我们首先创建了一个包含三个节点的链表,然后调用 `findNode` 函数查找值为 2 的节点。如果找到了,则输出该节点的值;否则,输出“Node not found”。
阅读全文