Sum of nodes in a linked list

Given a linked list which include integer elements. Our goal is to find sum of elements which is present in this linked list. We assume that the sum of nodes are not break the maximum and minimum integer.

List : 10 → -2 → 3 → NULL
Output : 11

List : 1 → 5 → 2 → 6 NULL
Output : 14

That is one of the basic problem to traverse linked list node, Which is easily solve using recursion and iterative manner.

// C Program
// Sum of nodes in a linked list
#include <stdio.h>
 //For malloc function
#include <stdlib.h>

//Linked List Node
struct Node
{
    int data;
    struct Node *next;
};
//Create a node of linked list
struct Node *create_node(int data)
{
    //Create dynamic node
    struct Node *node = (struct Node *) malloc(sizeof(struct Node));
    if (node == NULL)
    {
        printf("Memory overflow\n");
    }
    else
    {
        //Set initial node value
        node->data = data;
        node->next = NULL;
    }
    return node;
}
//Add new node at end of linked list 
void insert(struct Node **head, int data)
{
    struct Node *node = create_node(data);
    if ( *head == NULL)
    {
        *head = node;
    }
    else
    {
        struct Node *temp = *head;
        //Find last node
        while (temp->next != NULL)
        {
            temp = temp->next;
        }
        //Add node at last possition
        temp->next = node;
    }
}
//Display linked list element
void display(struct Node *head)
{
    if (head == NULL)
    {
        printf("\nEmpty linked list\n");
        return;
    }
    struct Node *temp = head;
    printf("\n Linked List : ");
    //iterating linked list elements
    while (temp != NULL)
    {
        printf("  %d", temp->data);
        //visit to next node
        temp = temp->next;
    }
    printf("\n");
}
// Calculate sum of all node elements in given singly linked list
void node_sum(struct Node *head)
{
    if (head == NULL)
    {
        return;
    }
    //Define resultant variable
    int result = 0;
    //Start to first node of linked list
    struct Node *temp = head;
    //iterating linked list elements
    while (temp != NULL)
    {
        //Add node value
        result = result + temp->data;
        //visit to next node
        temp = temp->next;
    }
    //Display Calculated result
    printf(" Node Sum Is :  %d\n", result);
}
int main()
{
    struct Node *head = NULL;
    //Create linked list
    insert( &head, 4);
    insert( &head, 7);
    insert( &head, 2);
    insert( &head, 3);
    insert( &head, 1);
    insert( &head, 3);
    insert( &head, 4);
    insert( &head, 5);
    insert( &head, 6);
    //Display of linked list nodes
    display(head);
    node_sum(head);
    return 0;
}

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is :  35
// Java Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    public int data;
    public Node next;
    public Node(int data)
    {
        //Set node value
        this.data = data;
        this.next = null;
    }
}
class MyLinkedList
{
    public Node head;
    public Node tail;
    //Class constructors
    public MyLinkedList()
    {
        this.head = null;
        this.tail = null;
    }
    //insert node at last of linke list
    public void insert(int data)
    {
        //Create a node
        Node node = new Node(data);
        if (this.head == null)
        {
            //When linked list empty add first node
            this.head = node;
            this.tail = node;
        }
        else
        {
            //Add new node at end of linked list
            this.tail.next = node;
            this.tail = node;
        }
    }
    //Display linked list element
    public void display()
    {
        if (this.head == null)
        {
            System.out.print("\nEmpty linked list\n");
            return;
        }
        Node temp = this.head;
        System.out.print("\n Linked List : ");
        //iterating linked list elements
        while (temp != null)
        {
            //display node value
            System.out.print("  " + temp.data);
            //visit to next node
            temp = temp.next;
        }
        System.out.print("\n");
    }
    // Calculate sum of all node elements in given singly linked list
    public void node_sum()
    {
        if (this.head == null)
        {
            return;
        }
        //Define resultant variable
        int result = 0;
        //Start to first node of linked list
        Node temp = this.head;
        //iterating linked list elements
        while (temp != null)
        {
            //Add node value
            result = result + temp.data;
            //visit to next node
            temp = temp.next;
        }
        //Display Calculated result
        System.out.print(" Node Sum Is : " + result + "\n");
    }
    public static void main(String[] args)
    {
        MyLinkedList obj = new MyLinkedList();
        //Create linked list
        obj.insert(4);
        obj.insert(7);
        obj.insert(2);
        obj.insert(3);
        obj.insert(1);
        obj.insert(3);
        obj.insert(4);
        obj.insert(5);
        obj.insert(6);
        //Display of linked list nodes
        obj.display();
        obj.node_sum();
    }
}

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
//Include header file
#include <iostream>

using namespace std;
// C++ Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    public: int data;
    Node * next;
    Node(int data)
    {
        //Set node value
        this->data = data;
        this->next = NULL;
    }
};
class MyLinkedList
{
    public: Node * head;
    Node * tail;
    //Class constructors
    MyLinkedList()
    {
        this->head = NULL;
        this->tail = NULL;
    }
    //insert node at last of linke list
    void insert(int data)
    {
        //Create a node
        Node * node = new Node(data);
        if (this->head == NULL)
        {
            //When linked list empty add first node
            this->head = node;
            this->tail = node;
        }
        else
        {
            //Add new node at end of linked list
            this->tail->next = node;
            this->tail = node;
        }
    }
    //Display linked list element
    void display()
    {
        if (this->head == NULL)
        {
            cout << "\nEmpty linked list\n";
            return;
        }
        Node * temp = this->head;
        cout << "\n Linked List : ";
        //iterating linked list elements
        while (temp != NULL)
        {
            //display node value
            cout << "  " << temp->data;
            //visit to next node
            temp = temp->next;
        }
        cout << "\n";
    }
    // Calculate sum of all node elements in given singly linked list
    void node_sum()
    {
        if (this->head == NULL)
        {
            return;
        }
        //Define resultant variable
        int result = 0;
        //Start to first node of linked list
        Node * temp = this->head;
        //iterating linked list elements
        while (temp != NULL)
        {
            //Add node value
            result = result + temp->data;
            //visit to next node
            temp = temp->next;
        }
        //Display Calculated result
        cout << " Node Sum Is : " << result << "\n";
    }
};
int main()
{
    MyLinkedList obj = MyLinkedList();
    //Create linked list
    obj.insert(4);
    obj.insert(7);
    obj.insert(2);
    obj.insert(3);
    obj.insert(1);
    obj.insert(3);
    obj.insert(4);
    obj.insert(5);
    obj.insert(6);
    //Display of linked list nodes
    obj.display();
    obj.node_sum();
    return 0;
}

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
//Include namespace system
using System;
// C# Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    public int data;
    public Node next;
    public Node(int data)
    {
        //Set node value
        this.data = data;
        this.next = null;
    }
}
class MyLinkedList
{
    public Node head;
    public Node tail;
    //Class constructors
    public MyLinkedList()
    {
        this.head = null;
        this.tail = null;
    }
    //insert node at last of linke list
    public void insert(int data)
    {
        //Create a node
        Node node = new Node(data);
        if (this.head == null)
        {
            //When linked list empty add first node
            this.head = node;
            this.tail = node;
        }
        else
        {
            //Add new node at end of linked list
            this.tail.next = node;
            this.tail = node;
        }
    }
    //Display linked list element
    public void display()
    {
        if (this.head == null)
        {
            Console.Write("\nEmpty linked list\n");
            return;
        }
        Node temp = this.head;
        Console.Write("\n Linked List : ");
        //iterating linked list elements
        while (temp != null)
        {
            //display node value
            Console.Write("  " + temp.data);
            //visit to next node
            temp = temp.next;
        }
        Console.Write("\n");
    }
    // Calculate sum of all node elements in given singly linked list
    public void node_sum()
    {
        if (this.head == null)
        {
            return;
        }
        //Define resultant variable
        int result = 0;
        //Start to first node of linked list
        Node temp = this.head;
        //iterating linked list elements
        while (temp != null)
        {
            //Add node value
            result = result + temp.data;
            //visit to next node
            temp = temp.next;
        }
        //Display Calculated result
        Console.Write(" Node Sum Is : " + result + "\n");
    }
    public static void Main(String[] args)
    {
        MyLinkedList obj = new MyLinkedList();
        //Create linked list
        obj.insert(4);
        obj.insert(7);
        obj.insert(2);
        obj.insert(3);
        obj.insert(1);
        obj.insert(3);
        obj.insert(4);
        obj.insert(5);
        obj.insert(6);
        //Display of linked list nodes
        obj.display();
        obj.node_sum();
    }
}

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
<?php
// Php Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    public $data;
    public $next;

    function __construct($data)
    {
        //Set node value
        $this->data = $data;
        $this->next = null;
    }
}
class MyLinkedList
{
    public $head;
    public $tail;
    //Class constructors
    function __construct()
    {
        $this->head = null;
        $this->tail = null;
    }
    //insert node at last of linke list
    public  function insert($data)
    {
        //Create a node
        $node = new Node($data);
        if ($this->head == null)
        {
            //When linked list empty add first node
            $this->head = $node;
            $this->tail = $node;
        }
        else
        {
            //Add new node at end of linked list
            $this->tail->next = $node;
            $this->tail = $node;
        }
    }
    //Display linked list element
    public  function display()
    {
        if ($this->head == null)
        {
            echo "\nEmpty linked list\n";
            return;
        }
        $temp = $this->head;
        echo "\n Linked List : ";
        //iterating linked list elements
        while ($temp != null)
        {
            //display node value
            echo "  ". $temp->data;
            //visit to next node
            $temp = $temp->next;
        }
        echo "\n";
    }
    // Calculate sum of all node elements in given singly linked list
    public  function node_sum()
    {
        if ($this->head == null)
        {
            return;
        }
        //Define resultant variable
        $result = 0;
        //Start to first node of linked list
        $temp = $this->head;
        //iterating linked list elements
        while ($temp != null)
        {
            //Add node value
            $result = $result + $temp->data;
            //visit to next node
            $temp = $temp->next;
        }
        //Display Calculated result
        echo " Node Sum Is : ". $result ."\n";
    }
}

function main()
{
    $obj = new MyLinkedList();
    //Create linked list
    $obj->insert(4);
    $obj->insert(7);
    $obj->insert(2);
    $obj->insert(3);
    $obj->insert(1);
    $obj->insert(3);
    $obj->insert(4);
    $obj->insert(5);
    $obj->insert(6);
    //Display of linked list nodes
    $obj->display();
    $obj->node_sum();
}
main();

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
// Node Js Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    constructor(data)
    {
        //Set node value
        this.data = data;
        this.next = null;
    }
}
class MyLinkedList
{
    //Class constructors
    constructor()
    {
        this.head = null;
        this.tail = null;
    }
    //insert node at last of linke list
    insert(data)
    {
        //Create a node
        var node = new Node(data);
        if (this.head == null)
        {
            //When linked list empty add first node
            this.head = node;
            this.tail = node;
        }
        else
        {
            //Add new node at end of linked list
            this.tail.next = node;
            this.tail = node;
        }
    }
    //Display linked list element
    display()
    {
        if (this.head == null)
        {
            process.stdout.write("\nEmpty linked list\n");
            return;
        }
        var temp = this.head;
        process.stdout.write("\n Linked List : ");
        //iterating linked list elements
        while (temp != null)
        {
            //display node value
            process.stdout.write("  " + temp.data);
            //visit to next node
            temp = temp.next;
        }
        process.stdout.write("\n");
    }
    // Calculate sum of all node elements in given singly linked list
    node_sum()
    {
        if (this.head == null)
        {
            return;
        }
        //Define resultant variable
        var result = 0;
        //Start to first node of linked list
        var temp = this.head;
        //iterating linked list elements
        while (temp != null)
        {
            //Add node value
            result = result + temp.data;
            //visit to next node
            temp = temp.next;
        }
        //Display Calculated result
        process.stdout.write(" Node Sum Is : " + result + "\n");
    }
}

function main()
{
    var obj = new MyLinkedList();
    //Create linked list
    obj.insert(4);
    obj.insert(7);
    obj.insert(2);
    obj.insert(3);
    obj.insert(1);
    obj.insert(3);
    obj.insert(4);
    obj.insert(5);
    obj.insert(6);
    //Display of linked list nodes
    obj.display();
    obj.node_sum();
}
main();

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
#  Python 3 Program
#  Sum of nodes in a linked list

# Node of LinkedList
class Node :
    
    def __init__(self, data) :
        # Set node value
        self.data = data
        self.next = None
    

class MyLinkedList :
    
    # Class constructors
    def __init__(self) :
        self.head = None
        self.tail = None
    
    # insert node at last of linke list
    def insert(self, data) :
        # Create a node
        node = Node(data)
        if (self.head == None) :
            # When linked list empty add first node
            self.head = node
            self.tail = node
        else :
            # Add new node at end of linked list
            self.tail.next = node
            self.tail = node
        
    
    # Display linked list element
    def display(self) :
        if (self.head == None) :
            print("\nEmpty linked list\n", end = "")
            return
        
        temp = self.head
        print("\n Linked List : ", end = "")
        # iterating linked list elements
        while (temp != None) :
            # display node value
            print("  ", temp.data, end = "")
            # visit to next node
            temp = temp.next
        
        print(end="\n")
    
    #  Calculate sum of all node elements in given singly linked list
    def node_sum(self) :
        if (self.head == None) :
            return
        
        # Define resultant variable
        result = 0
        # Start to first node of linked list
        temp = self.head
        # iterating linked list elements
        while (temp != None) :
            # Add node value
            result = result + temp.data
            # visit to next node
            temp = temp.next
        
        # Display Calculated result
        print(" Node Sum Is : ", result )
    

def main() :
    obj = MyLinkedList()
    # Create linked list
    obj.insert(4)
    obj.insert(7)
    obj.insert(2)
    obj.insert(3)
    obj.insert(1)
    obj.insert(3)
    obj.insert(4)
    obj.insert(5)
    obj.insert(6)
    # Display of linked list nodes
    obj.display()
    obj.node_sum()

if __name__ == "__main__": main()

Output

 Linked List :    4   7   2   3   1   3   4   5   6
 Node Sum Is :  35
#  Ruby Program
#  Sum of nodes in a linked list

# Node of LinkedList
class Node 

    # Define the accessor and reader of class Node  
    attr_reader :data, :next
    attr_accessor :data, :next


    
    def initialize(data)
    
        # Set node value
        self.data = data
        self.next = nil
    end
end
class MyLinkedList 

    # Define the accessor and reader of class MyLinkedList  
    attr_reader :head, :tail
    attr_accessor :head, :tail


    
    # Class constructors
    def initialize()
    
        self.head = nil
        self.tail = nil
    end
    # insert node at last of linke list
    def insert(data)
    
        # Create a node
        node = Node.new(data)
        if (self.head == nil)
        
            # When linked list empty add first node
            self.head = node
            self.tail = node
        else
        
            # Add new node at end of linked list
            self.tail.next = node
            self.tail = node
        end
    end
    # Display linked list element
    def display()
    
        if (self.head == nil)
        
            print("\nEmpty linked list\n")
            return
        end
        temp = self.head
        print("\n Linked List : ")
        # iterating linked list elements
        while (temp != nil)
        
            # display node value
            print("  ", temp.data)
            # visit to next node
            temp = temp.next
        end
        print("\n")
    end
    #  Calculate sum of all node elements in given singly linked list
    def node_sum()
    
        if (self.head == nil)
        
            return
        end
        # Define resultant variable
        result = 0
        # Start to first node of linked list
        temp = self.head
        # iterating linked list elements
        while (temp != nil)
        
            # Add node value
            result = result + temp.data
            # visit to next node
            temp = temp.next
        end
        # Display Calculated result
        print(" Node Sum Is : ", result ,"\n")
    end
end
def main()

    obj = MyLinkedList.new()
    # Create linked list
    obj.insert(4)
    obj.insert(7)
    obj.insert(2)
    obj.insert(3)
    obj.insert(1)
    obj.insert(3)
    obj.insert(4)
    obj.insert(5)
    obj.insert(6)
    # Display of linked list nodes
    obj.display()
    obj.node_sum()
end
main()

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
// Scala Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node(var data: Int,
    var next: Node)
{
    def this(data: Int)
    {
        this(data, null);
    }
}
class MyLinkedList(var head: Node,
    var tail: Node)
{
    //Class constructors
    def this()
    {
        this(null, null);
    }
    //insert node at last of linke list
    def insert(data: Int): Unit = {
        //Create a node
        var node: Node = new Node(data);
        if (this.head == null)
        {
            //When linked list empty add first node
            this.head = node;
            this.tail = node;
        }
        else
        {
            //Add new node at end of linked list
            this.tail.next = node;
            this.tail = node;
        }
    }
    //Display linked list element
    def display(): Unit = {
        if (this.head == null)
        {
            print("\nEmpty linked list\n");
            return;
        }
        var temp: Node = this.head;
        print("\n Linked List : ");
        //iterating linked list elements
        while (temp != null)
        {
            //display node value
            print("  " + temp.data);
            //visit to next node
            temp = temp.next;
        }
        print("\n");
    }
    // Calculate sum of all node elements in given singly linked list
    def node_sum(): Unit = {
        if (this.head == null)
        {
            return;
        }
        //Define resultant variable
        var result: Int = 0;
        //Start to first node of linked list
        var temp: Node = this.head;
        //iterating linked list elements
        while (temp != null)
        {
            //Add node value
            result = result + temp.data;
            //visit to next node
            temp = temp.next;
        }
        //Display Calculated result
        print(" Node Sum Is : " + result + "\n");
    }
}
object Main
{
    def main(args: Array[String]): Unit = {
        var obj: MyLinkedList = new MyLinkedList();
        //Create linked list
        obj.insert(4);
        obj.insert(7);
        obj.insert(2);
        obj.insert(3);
        obj.insert(1);
        obj.insert(3);
        obj.insert(4);
        obj.insert(5);
        obj.insert(6);
        //Display of linked list nodes
        obj.display();
        obj.node_sum();
    }
}

Output

 Linked List :   4  7  2  3  1  3  4  5  6
 Node Sum Is : 35
// Swift Program
// Sum of nodes in a linked list

//Node of LinkedList
class Node
{
    var data: Int;
    var next: Node? ;
    init(_ data: Int)
    {
        //Set node value
        self.data = data;
        self.next = nil;
    }
}
class MyLinkedList
{
    var head: Node? ;
    var tail: Node? ;
    //Class constructors
    init()
    {
        self.head = nil;
        self.tail = nil;
    }
    //insert node at last of linke list
    func insert(_ data: Int)
    {
        //Create a node
        let node: Node? = Node(data);
        if (self.head == nil)
        {
            //When linked list empty add first node
            self.head = node;
            self.tail = node;
        }
        else
        {
            //Add new node at end of linked list
            self.tail!.next = node;
            self.tail = node;
        }
    }
    //Display linked list element
    func display()
    {
        if (self.head == nil)
        {
            print("\nEmpty linked list\n", terminator: "");
            return;
        }
        var temp: Node? = self.head;
        print("\n Linked List : ", terminator: "");
        //iterating linked list elements
        while (temp != nil)
        {
            //display node value
            print("  ", temp!.data, terminator: "");
            //visit to next node
            temp = temp!.next;
        }
        print("\n", terminator: "");
    }
    // Calculate sum of all node elements in given singly linked list
    func node_sum()
    {
        if (self.head == nil)
        {
            return;
        }
        //Define resultant variable
        var result: Int = 0;
        //Start to first node of linked list
        var temp: Node? = self.head;
        //iterating linked list elements
        while (temp != nil)
        {
            //Add node value
            result = result + temp!.data;
            //visit to next node
            temp = temp!.next;
        }
        //Display Calculated result
        print(" Node Sum Is : ", result ,"\n", terminator: "");
    }
}
func main()
{
    let obj: MyLinkedList = MyLinkedList();
    //Create linked list
    obj.insert(4);
    obj.insert(7);
    obj.insert(2);
    obj.insert(3);
    obj.insert(1);
    obj.insert(3);
    obj.insert(4);
    obj.insert(5);
    obj.insert(6);
    //Display of linked list nodes
    obj.display();
    obj.node_sum();
}
main();

Output

 Linked List :    4   7   2   3   1   3   4   5   6
 Node Sum Is :  35


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved