链接列表的长度。
#初学者 #c #linkedlist

有关更多此类博客,请访问“ www.coderlogs.com

对于给定的链接列表,您应该编写一个函数,以找到该链接列表的长度。

示例1:

输入:链接列表:4 6 8 2
输出:列表长度:4
image

示例2:

输入:链接列表:1 3 1 2 1
输出:列表长度:5
image

步骤:

  • 声明并初始化临时指针temp作为链接列表的head节点。
  • 初始化一个整数变量countzero(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);
}