在C ++中查找链接列表的长度(迭代和递归)
在这里,我们将看到如何使用迭代和递归方法查找链表的长度。如果给出了头指针,我们必须遵循以下步骤来获取长度。
对于迭代方法-
以列表的开头,直到当前指针不为空,再转到下一个节点并增加计数。
对于递归方法-
将head作为参数传递,基本条件是参数为null时,然后返回0,否则递归进入列表并从当前节点发送下一个节点,返回1 +子列表的长度
示例
#include<iostream>using namespace std;
class Node {
public:
int data;
Node* next;
};
void append(struct Node** start, int data) {
struct Node* new_node = new Node;
new_node->data = data;
new_node->next = (*start);
(*start) = new_node;
}
int count_recursive(Node* start) {
if (start == NULL)
return 0;
return 1 + count_recursive(start->next);
}
int count_iterative(Node* start) {
int count = 0;
Node* current = start;
while (current != NULL) {
count++;
current = current->next;
}
return count;
}
int main() {
Node* start = NULL;
append(&start, 1);
append(&start, 3);
append(&start, 1);
append(&start, 2);
append(&start, 1);
cout << "Node count using iterative approach: " << count_iterative(start) << endl;
cout << "Node count using recursion: " << count_recursive(start);
}
输出结果
Node count using iterative approach: 5Node count using recursion: 5
以上是 在C ++中查找链接列表的长度(迭代和递归) 的全部内容, 来源链接: utcz.com/z/317100.html