Range Sum of Linked List
Range Sum of Linked List​
Given a linked list and a range defined by start and end (0-indexed), calculate the sum of the node values within this range.
Implementation in c++​
#include <iostream>
using namespace std;
struct ListNode {
    int val;
    ListNode* next;
    ListNode(int x) : val(x), next(NULL) {}
};
int rangeSum(ListNode* head, int start, int end) {
    int rangeSum = 0;         // Sum of values within the range
    int position = 0;          // Track the current position in the list
    ListNode* current = head;  // Pointer to traverse the list
    // Traverse the linked list
    while (current != nullptr) {
        // If the position is within the specified range, add to sum
        if (position >= start && position <= end) {
            rangeSum += current->val;
        }
        
        // Break if we've passed the end of the range
        if (position > end) {
            break;
        }
        // Move to the next node and increment the position
        current = current->next;
        position++;
    }
    return rangeSum;
}
int main() {
    // Creating a sample linked list: 1 -> 2 -> 3 -> 4 -> 5
    ListNode* head = new ListNode(1);
    head->next = new ListNode(2);
    head->next->next = new ListNode(3);
    head->next->next->next = new ListNode(4);
    head->next->next->next->next = new ListNode(5);
    // Calculate the sum of node values from position 1 to 3 (inclusive)
    int start = 1;
    int end = 3;
    cout << "Range Sum: " << rangeSum(head, start, end) << endl;  // Output should be 2 + 3 + 4 = 9
    // Clean up the memory allocated for the linked list
    ListNode* temp;
    while (head != nullptr) {
        temp = head;
        head = head->next;
        delete temp;
    }
    return 0;
}
Complexity​
- Time Complexity:
 - Space Complexity: