Add Two Numbers Leetcode Solution In Hindi 2 Way

Add Two Numbers Leetcode: आपको दो गैर-खाली लिंक्ड लिस्ट दिए गए हैं, जो दो गैर-नकारात्मक संख्याओं को दर्शाते हैं। अंक उलटे आदेश में संग्रहीत होते हैं, और उनके प्रत्येक नोड में एक एकल अंक होता है। दो संख्याओं को जोड़ें और योग को एक लिंक्ड लिस्ट के रूप में लौटाएँ।

आप मान सकते हैं कि संख्या 0 को छोड़कर, दो संख्याओं में कोई अग्रणी शून्य नहीं है।

Example1

Add Two Numbers Leetcode

Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]
Explanation: 342 + 465 = 807.

Example2

Input: l1 = l1 = [0], l2 = [0]
Output: [0]

Example3

Input: [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]

Constraints( प्रतिबंध ):

  • प्रत्येक लिंक की गई सूची में नोड्स की संख्या [1, 100] की सीमा में है।
  • 0 <= Node.val <= 9
  • यह गारंटी दी जाती है कि सूची एक संख्या का प्रतिनिधित्व करती है जिसमें अग्रणी शून्य ( Leading 0 ) नहीं है।

Explanation ( स्पष्टीकरण ):

प्रश्न दो लिंक्ड सूचियों के साथ गणित जोड़ ऑपरेशन करने के बारे में है। परिणामी लिंक्ड सूची दो इनपुट लिंक्ड सूचियों के योग से मान प्राप्त करती है। हम इस प्रक्रिया को वैसे ही ले सकते हैं जैसे हम कॉलम में जोड़ रहे हैं।

मुख्य बिंदु: जैसे हम अंकगणित में योग करते हैं वैसे ही हमें एक कैरी जोड़ने की आवश्यकता है। एक कैरी एक अंक है जिसे अंकों के एक कॉलम से अधिक महत्वपूर्ण अंकों के दूसरे कॉलम में स्थानांतरित किया जाता है।

  • यदि दोनों लिंक की गई सूचियों में शेष नोड (l1, l2) हैं, तो लिंक की गई सूची के परिणाम नोड को ((l1.val + l2.val + कैरी)% 10) से मान मिलता है।
  • यदि केवल एक लिंक की गई सूची में शेष नोड है, तो परिणामस्वरूप लिंक की गई सूची नोड को मान ((l1.val + कैरी)% 10 या (l2.val + कैरी)% 10) मिलता है।
  • यदि किसी भी लिंक की गई सूची में शेष नोड नहीं हैं, तो हमें यह जांचना चाहिए कि क्या अभी भी कैरीओवर मान है।

Add Two Numbers Leetcode Java Solution

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode dummy = new ListNode(0);
        ListNode current = dummy;
        int carry = 0;
                
        while (l1 != null && l2 != null) {
            int value = (l1.val + l2.val + carry) % 10;
            carry = (l1.val + l2.val + carry) / 10;
            ListNode result = new ListNode(value);
            current.next = result;
            l1 = l1.next;
            l2 = l2.next;
            current = result;
        }
        
        while (l1 != null) {
            int value = (l1.val + carry) % 10;
            carry = (l1.val + carry) / 10;            
            ListNode result = new ListNode(value);
            current.next = result;
            l1 = l1.next;
            current = result;            
        }
        
        while (l2 != null) {
            int value = (l2.val + carry) % 10;
            carry = (l2.val + carry) / 10;     
            ListNode result = new ListNode(value);
            current.next = result;
            l2 = l2.next;
            current = result;            
        }        
        
        if (carry != 0) {
            ListNode result = new ListNode(carry);
            current.next = result;
            current = result;             
        }
        
        return dummy.next;        
    }
}
Java

Learn Longest Substring Without Repeating Characters Problem Solution Click Here

Add Two Numbers Leetcode Python Solution

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        dummy = ListNode(0)
        l3 = dummy
        
        carry = 0
        while l1 != None and l2 != None:
            value = (l1.val + l2.val + carry) % 10
            carry = (l1.val + l2.val + carry) // 10
            
            l3.next = ListNode(value) 
            l3 = l3.next

            l1 = l1.next                        
            l2 = l2.next
            

        while l1 != None:
            value = (l1.val + carry) % 10
            carry = (l1.val + carry) // 10
            
            l3.next = ListNode(value) 
            l3 = l3.next
            l1 = l1.next
            
        while l2 != None:
            value = (l2.val + carry) % 10
            carry = (l2.val + carry) // 10
            
            l3.next = ListNode(value)             
            l3 = l3.next
            l2 = l2.next
        
        if carry != 0:
            l3.next = ListNode(carry) 
            
            
        return dummy.next
Python

Time Complexity: ~max(M, N), जहां M और एन क्रमशः L1 और L2 की लंबाई को Represent करते हैं, उपरोक्त एल्गोरिथम अधिक से अधिक max(M, N) Iteration करता है।

Space Complexity: ~max(M,N). नई सूची की लंबाई अधिक से अधिक  max(M, N) + 1 है

Company In which leetcode add two number problem asked

Adobe, Aetion, Airbnb, Alibaba, Amazon, Apple, Baidu, Bloomberg, ByteDance, Capital, One, Cisco, Facebook, Flipkart, GoDaddy, Google, Grab, Huawei, IBM, Intel, Lyft, Mathworks, Microsoft, Nvidia, Oracle, Paypal, Qualcomm, Redfin, SAP, ServiceNow, Tencent, Uber, VMware, Wish, Yahoo, Yandex, Zoho

error: Content is protected!! You are not allowed to copy.