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))
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))