📜  用于查找链表长度的 C++ 程序(1)

📅  最后修改于: 2023-12-03 15:11:17.247000             🧑  作者: Mango

用于查找链表长度的 C++ 程序

在实际的编程过程中,经常需要对链表进行操作。其中一个常见的操作就是查找链表的长度。本文将介绍一种用于查找链表长度的 C++ 程序。

算法思路

要查找链表的长度,可以遍历整个链表,统计节点个数。从链表的头节点出发,向后遍历每个节点,每遇到一个节点,计数器加一,直到遍历到链表的结尾。

代码实现

下面是用于查找链表长度的 C++ 程序的代码实现:

#include <iostream>
using namespace std;

struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(NULL) {}
};

int getListLength(ListNode* head) {
    int length = 0;
    ListNode* p = head;
    while (p) {
        length++;
        p = p->next;
    }
    return length;
}

int main() {
    // 构造链表
    ListNode* head = new ListNode(1);
    ListNode* p1 = new ListNode(2);
    ListNode* p2 = new ListNode(3);
    ListNode* p3 = new ListNode(4);
    head->next = p1;
    p1->next = p2;
    p2->next = p3;
    p3->next = NULL;

    // 输出链表长度
    int length = getListLength(head);
    cout << "链表的长度为:" << length << endl;

    return 0;
}

其中,getListLength 函数用于遍历整个链表,统计节点个数。在 main 函数中,构造一个链表,并调用 getListLength 函数输出链表的长度。

Markdown 代码片段
# 用于查找链表长度的 C++ 程序

在实际的编程过程中,经常需要对链表进行操作。其中一个常见的操作就是查找链表的长度。本文将介绍一种用于查找链表长度的 C++ 程序。

## 算法思路

要查找链表的长度,可以遍历整个链表,统计节点个数。从链表的头节点出发,向后遍历每个节点,每遇到一个节点,计数器加一,直到遍历到链表的结尾。

## 代码实现

下面是用于查找链表长度的 C++ 程序的代码实现:

```cpp
#include <iostream>
using namespace std;

struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(NULL) {}
};

int getListLength(ListNode* head) {
    int length = 0;
    ListNode* p = head;
    while (p) {
        length++;
        p = p->next;
    }
    return length;
}

int main() {
    // 构造链表
    ListNode* head = new ListNode(1);
    ListNode* p1 = new ListNode(2);
    ListNode* p2 = new ListNode(3);
    ListNode* p3 = new ListNode(4);
    head->next = p1;
    p1->next = p2;
    p2->next = p3;
    p3->next = NULL;

    // 输出链表长度
    int length = getListLength(head);
    cout << "链表的长度为:" << length << endl;

    return 0;
}

其中,getListLength 函数用于遍历整个链表,统计节点个数。在 main 函数中,构造一个链表,并调用 getListLength 函数输出链表的长度。