# Sum of the nodes of a Circular Linked List

• Difficulty Level : Easy
• Last Updated : 27 May, 2021

Given a singly Circular linked list. The task is to find the sum of nodes of the given linked list. For the above circular list, sum = 2 + 5 + 7 + 8 + 10 = 32
Examples:

```Input: 11->2->56->12
Output: Sum of Circular linked list is = 81

Input: 2-> 5 -> 7 -> 8 -> 10
Output: Sum of Circular linked list is = 32   ```

Approach:

1. Initialize a pointer temp with the head of the linked list and a sum variable with 0.
2. Start traversing the linked list using a loop until all the nodes get traversed.
• Add the value of current node to the sum i.e. sum += temp -> data.
• Increment the pointer to the next node of linked list i.e. temp = temp -> next.
3. Return the sum.

Below is the implementation of the above approach:

## C++

 `// CPP program to find the sum of all nodes` `// of a Circular linked list`   `#include ` `using` `namespace` `std;`   `// Structure for a node` `struct` `Node {` `    ``int` `data;` `    ``struct` `Node* next;` `};`   `// Function to insert a node at the beginning` `// of a Circular linked list` `void` `push(``struct` `Node** head_ref, ``int` `data)` `{` `    ``struct` `Node* ptr1 = (``struct` `Node*)``malloc``(``sizeof``(``struct` `Node));` `    ``struct` `Node* temp = *head_ref;` `    ``ptr1->data = data;` `    ``ptr1->next = *head_ref;`   `    ``// If linked list is not NULL then` `    ``// set the next of last node` `    ``if` `(*head_ref != NULL) {` `        ``while` `(temp->next != *head_ref)` `            ``temp = temp->next;` `        ``temp->next = ptr1;` `    ``}` `    ``else` `        ``ptr1->next = ptr1; ``// For the first node`   `    ``*head_ref = ptr1;` `}`   `// Function to find sum of the given` `// Circular linked list` `int` `sumOfList(``struct` `Node* head)` `{` `    ``struct` `Node* temp = head;` `    ``int` `sum = 0;` `    ``if` `(head != NULL) {` `        ``do` `{` `            ``temp = temp->next;` `            ``sum += temp->data;` `        ``} ``while` `(temp != head);` `    ``}`   `    ``return` `sum;` `}`   `// Driver code` `int` `main()` `{` `    ``// Initialize lists as empty` `    ``struct` `Node* head = NULL;`   `    ``// Created linked list will be 11->2->56->12` `    ``push(&head, 12);` `    ``push(&head, 56);` `    ``push(&head, 2);` `    ``push(&head, 11);`   `    ``cout << ``"Sum of Circular linked list is = "` `<< sumOfList(head);`   `    ``return` `0;` `}`

## Java

 `// Java program to find the sum of` `// all nodes of a Circular linked list ` `import` `java.util.*;`   `class` `GFG` `{`   `// structure for a node ` `static` `class` `Node ` `{ ` `    ``int` `data; ` `    ``Node next; ` `}; `   `// Function to insert a node ` `// at the beginning of a ` `// Circular linked list ` `static` `Node push(Node head_ref, ` `                      ``int` `data) ` `{ ` `    ``Node ptr1 = ``new` `Node(); ` `    ``Node temp = head_ref; ` `    ``ptr1.data = data; ` `    ``ptr1.next = head_ref; `   `    ``// If linked list is not null then ` `    ``// set the next of last node ` `    ``if` `(head_ref != ``null``) ` `    ``{ ` `        ``while` `(temp.next != head_ref) ` `            ``temp = temp.next; ` `        ``temp.next = ptr1; ` `    ``} ` `    ``else` `        ``ptr1.next = ptr1; ``// For the first node `   `    ``head_ref = ptr1; ` `    `  `    ``return` `head_ref;` `} `   `// Function to find sum of the ` `// given Circular linked list ` `static` `int` `sumOfList(Node head) ` `{ ` `    ``Node temp = head; ` `    ``int` `sum = ``0``; ` `    ``if` `(head != ``null``) ` `    ``{ ` `        ``do` `        ``{ ` `            ``temp = temp.next; ` `            ``sum += temp.data; ` `        ``} ``while` `(temp != head); ` `    ``} `   `    ``return` `sum; ` `} `   `// Driver code ` `public` `static` `void` `main(String args[])` `{ ` `    ``// Initialize lists as empty ` `    ``Node head = ``null``; `   `    ``// Created linked list will` `    ``// be 11.2.56.12 ` `    ``head = push(head, ``12``); ` `    ``head = push(head, ``56``); ` `    ``head = push(head, ``2``); ` `    ``head = push(head, ``11``); `   `    ``System.out.println(``"Sum of Circular linked"` `+ ` `                ``" list is = "` `+ sumOfList(head)); ` `} ` `}`   `// This code is contributed by Arnab Kundu`

## Python3

 `# Python3 program to find the sum of all nodes ` `# of a Circular linked list ` `import` `math`   `# class for a node` `class` `Node:` `    ``def` `__init__(``self``,data):` `        ``self``.data ``=` `data` `        ``self``.``next` `=` `None`   `# Function to insert a node at the beginning ` `# of a Circular linked list ` `def` `push(head, data):` `    ``if` `not` `head:` `        ``head ``=` `Node(data)` `        ``head.``next` `=` `head` `        ``return` `head` `    ``lnode ``=` `head`   `    ``# If linked list is not NULL then ` `    ``# set the next of last node ` `    ``while``(lnode ``and` `lnode.``next` `is` `not` `head):` `        ``lnode ``=` `lnode.``next` `    ``ptr1 ``=` `Node(data) ``# For the first node` `    ``ptr1.``next` `=` `head` `    ``lnode.``next` `=` `ptr1` `    ``head ``=` `ptr1` `    ``return` `head`   `# Function to find sum of the given ` `# Circular linked list     ` `def` `sumOfList(head):` `    ``temp ``=` `head` `    ``tsum ``=` `temp.data` `    ``temp ``=` `temp.``next` `    ``while``(temp ``is` `not` `head):` `        ``tsum ``+``=` `temp.data` `        ``temp ``=` `temp.``next` `    ``return` `tsum`   `# Driver code ` `if` `__name__``=``=``'__main__'``:` `    `  `    ``# Initialize lists as empty` `    ``head ``=` `None`   `    ``# Created linked list will be 11->2->56->12 ` `    ``head ``=` `push(head, ``12``)` `    ``head ``=` `push(head, ``56``)` `    ``head ``=` `push(head, ``2``)` `    ``head ``=` `push(head, ``11``)` `    ``print``(``"Sum of circular list is = {}"` `. ` `                  ``format``(sumOfList(head)))`   `# This code is contributed by Vikash Kumar 37`

## C#

 `// C# program to find the sum of ` `// all nodes of a Circular linked list ` `using` `System;`   `class` `GFG ` `{ `   `    ``// structure for a node ` `    ``class` `Node ` `    ``{ ` `        ``public` `int` `data; ` `        ``public` `Node next; ` `    ``}; `   `    ``// Function to insert a node ` `    ``// at the beginning of a ` `    ``// Circular linked list ` `    ``static` `Node push(Node head_ref, ` `                        ``int` `data) ` `    ``{ ` `        ``Node ptr1 = ``new` `Node(); ` `        ``Node temp = head_ref; ` `        ``ptr1.data = data; ` `        ``ptr1.next = head_ref; `   `        ``// If linked list is not null then ` `        ``// set the next of last node ` `        ``if` `(head_ref != ``null``) ` `        ``{ ` `            ``while` `(temp.next != head_ref) ` `                ``temp = temp.next; ` `            ``temp.next = ptr1; ` `        ``} ` `        ``else` `            ``ptr1.next = ptr1; ``// For the first node `   `        ``head_ref = ptr1; `   `        ``return` `head_ref; ` `    ``} `   `    ``// Function to find sum of the ` `    ``// given Circular linked list ` `    ``static` `int` `sumOfList(Node head) ` `    ``{ ` `        ``Node temp = head; ` `        ``int` `sum = 0; ` `        ``if` `(head != ``null``) ` `        ``{ ` `            ``do` `            ``{ ` `                ``temp = temp.next; ` `                ``sum += temp.data; ` `            ``} ``while` `(temp != head); ` `        ``} `   `        ``return` `sum; ` `    ``} `   `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``// Initialize lists as empty ` `        ``Node head = ``null``; `   `        ``// Created linked list will ` `        ``// be 11.2.56.12 ` `        ``head = push(head, 12); ` `        ``head = push(head, 56); ` `        ``head = push(head, 2); ` `        ``head = push(head, 11); `   `        ``Console.WriteLine(``"Sum of Circular linked"` `+ ` `                    ``" list is = "` `+ sumOfList(head)); ` `    ``} ` `}`   `// This code is contributed by princiraj1992`

## Javascript

 ``

Output:

`Sum of Circular linked list is = 81`

Time Complexity: O(N) where N is the number of nodes in the linked list.
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :