def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        LLTemp = LinkList()
        LLTemp.insert(0)
        dummy = temp = LLTemp.head

        while l1 is not None and l2 is not None:
            if l1.val < l2.val:
                temp.next = l1
                l1 = l1.next
            else:
                temp.next = l2
                l2 = l2.next

            temp = temp.next

        temp.next = l1 or l2

        print(LLTemp.printLL())
        return dummy.next
        return result

    def recSolve(self, node, prev):
        if not node:
            return prev
        currentNode = node.next
        node.next = prev
        return self.recSolve(currentNode, node)

    def iterativeSol(self,head,prev):
        while head:
            currentNode = head
            head = head.next
            currentNode.next = prev
            prev = currentNode

        return prev





arr = [1, 2, 3, 4, 5]

ll = LinkList()

for i in range(len(arr)):
    ll.insert(arr[i])

print(Solution().reverseList(ll.head))
        dummy = temp = LLTemp.head

        while l1 is not None and l2 is not None:
            if l1.val < l2.val:
                temp.next = l1
                l1 = l1.next
            else:
                temp.next = l2
                l2 = l2.next

            temp = temp.next

        temp.next = l1 or l2

        print(LLTemp.printLL())
        return dummy.next


LL1 = LinkList()
LL2 = LinkList()
l1 = [1, 2, 4]
l2 = [1, 3, 4]

for i in range(len(l1)):
    LL1.insert(l1[i])

for i in range(len(l2)):
    LL2.insert(l2[i])

print(Solution().mergeTwoLists(LL1.head, LL2.head))
Esempio n. 4
0
            if not p:
                p = headB

            if not q:
                q = headA
        return p


ll1 = LinkList()
ll2 = LinkList()
arr1 = [4, 1, 8, 4, 5]
arr2 = [5, 6, 1, 8, 4, 5]
intersectionPoint = 8

for i in range(len(arr1)):
    ll1.insert((arr1[i]))
for i in range(len(arr2)):
    ll2.insert((arr2[i]))

lenLL1 = 0
curA = ll1.head
lenLL2 = 0
curB = ll2.head
while curA:
    curA = curA.next
    lenLL1 = lenLL1 + 1
while curB:
    curB = curB.next
    lenLL2 = lenLL2 + 1

curA = ll1.head
from Geeks.leetcode.top100.Linklist.linklistbuilder import LinkList

from Geeks.leetcode.top100.Linklist.linklistbuilder import ListNode

LL = LinkList()
LL.insert(1)
LL.insert(2)
LL.insert(3)
LL.insert(4)
LL.insert(5)
LL.insert(6)


class Solution:
    def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
        dummy = ListNode(0)
        dummy.next = head
        l = 0
        current = head
        while current:
            l = l + 1
            current = current.next
        l = l - n
        current = dummy
        while l > 0:
            l = l - 1
            current = current.next
        current.next = current.next.next
        # LL.printLL()
        return dummy.next
        carry = 0
        res = curNode = ListNode(0)
        while l1 or l2 or carry:
            v1 = v2 = 0
            if l1:
                v1 = l1.val
                l1 = l1.next
            if l2:
                v2 = l2.val
                l2 = l2.next
            tempSum = v1 + v2 + carry
            carry, val = divmod(tempSum, 10)
            curNode.next = ListNode(val)
            curNode = curNode.next

        return res.next


arr1 = [2, 4, 3]
arr2 = [5, 6, 4]

llA = LinkList()
llB = LinkList()

for i in range(len(arr1)):
    llA.insert(arr1[i])

for i in range(len(arr2)):
    llB.insert(arr2[i])

print(Solution().addTwoNumbers(llA.head, llB.head))