有关更多此类博客,请访问“ www.coderlogs.com”
对于给定的链接列表,您应该编写一个函数,以找到该链接列表的长度。
示例1:
示例2:
步骤:
- 声明并初始化临时指针
temp
作为链接列表的head
节点。 - 初始化一个整数变量
count
为zero(0)
。 - 使用
temp
遍历链接列表,并将one
的变量count
递增,直到temp
变为NULL
,即
while(temp != NULL)
{
count++;
temp = temp->next;
}
- 返回或打印列出列表长度的变量
count
。
c程序,找到给定链接列表的长度。
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
struct node
{
int data;
struct node * next;
};
void displayLL(struct node * head)
{
struct node * temp;
temp = head;
temp=head;
while(temp!=0)
{
printf("%d ",temp->data);
temp = temp->next;
}
}
void length(struct node *head)
{
struct node *temp = head;
int count = 0;
while(temp != NULL)
{
count++;
temp = temp->next;
}
printf("\n--------------------------------\n");
printf("Length of linked list : %d", count);
}
int main()
{
struct node *head = 0, *newnode, *temp;
int n, choice, newdata;
// Create Linked List //
printf("Enter the number of nodes in the list : ");
scanf("%d", &n);
if(n == 0)
{
printf("--------------------------------\n");
printf("Linked list cannot be empty");
exit(0);
}
for(int i = 1; i<=n; i++)
{
newnode = (struct node *)malloc(sizeof(struct node));
printf("Enter the data%d : ", i);
scanf("%d", &newnode->data);
newnode->next = 0;
if(head == 0)
{
head = temp = newnode;
}
else
{
temp->next = newnode;
temp = newnode;
}
}
printf("--------------------------------\n");
printf("Original linked list : ");
displayLL(head);
length(head);
}