ধরা যাক l1 এবং l2 নামে দুটি লিংকড লিস্ট আছে, l1-থেকে শুরু করে এই দুটির উপাদান ইন্টারলিভ করে একটি লিংকড লিস্ট বানাতে হবে। অবশিষ্ট নোডগুলো শেষে অ্যাপেন্ড হবে।
উদাহরণ: l1 = [5,4,6,3,4,7], l2 = [8,6,9] হলে আউটপুট [5,8,4,6,6,9,3,4,7]।
সমাধানের ধাপসমূহ
- ans := l1
- যখন l2 null নয়:
- যদি ans null নয় এবং ans.next null নয়, তবে l2-র ভ্যালু দিয়ে নতুন নোড ans-র মাঝপথে ইনসার্ট করুন, ans এবং l2 آگাড় বাড়ান।
- অন্যথায় ans.next = l2, ব্রেক করুন।
- যদি ans null হয়, l2 ফেরত দিন।
- l1 ফেরত দিন।
উদাহরণ কোড
class ListNode:
def __init__(self, data, next=None):
self.val = data
self.next = next
def make_list(elements):
head = ListNode(elements[0])
for element in elements[1:]:
ptr = head
while ptr.next:
ptr = ptr.next
ptr.next = ListNode(element)
return head
def print_list(head):
ptr = head
print('[', end='')
while ptr:
print(ptr.val, end=', ')
ptr = ptr.next
print(']')
class Solution:
def solve(self, l1, l2):
ans = l1
while l2:
if ans:
if ans.next != None:
newnode = ListNode(l2.val, None)
newnode.next = ans.next
ans.next = newnode
ans = newnode.next
l2 = l2.next
else:
ans.next = l2
break
else:
return l2
return l1
ob = Solution()
l1 = make_list([5,4,6,3,4,7])
l2 = make_list([8,6,9])
res = ob.solve(l1,l2)
print_list(res)
ইনপুট
[5,4,6,3,4,7],[8,6,9]
আউটপুট
[5, 8, 4, 6, 6, 9, 3, 4, 7, ]