কম্পিউটার টিউটোরিয়াল

পাইথনে লিংকড লিস্ট উল্টে ফেলার প্রোগ্রাম


মান ল করুন একটি লিংকড লিস্ট, আমাদের এটি উল্টে ফেলতে হবে। যেমন লিস্ট 2 -> 4 -> 6 -> 8 হলে, নতুন উল্টা লিস্ট হবে 8 -> 6 -> 4 -> 2।

এটি সমাধান করতে আমরা এই পদ্ধতিটি অনুসরণ করব:

  • লিস্ট রিভার্স করার জন্য একটি রিকার্সিভ প্রসিজার সংজ্ঞায়িত করুন solve(head, back) হিসেবে।
  • যদি head নেই, তবে head ফেরত দিন।
  • temp := head.next
  • head.next := back
  • back := head
  • যদি temp খালি হয়, তবে head ফেরত দিন।
  • head := temp
  • solve(head, back) ফেরত দিন।

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

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(object):    def reverseList(self, head):       return self.solve(head,None) def solve(self, head, back):    if not head:       return head    temp= head.next    head.next = back    back = head    if not temp:       return head    head = temp    return self.solve(head,back) list1 = make_list([5,8,9,6,4,7,8,1]) ob1 = Solution() list2 = ob1.reverseList(list1) print_list(list2)

ইনপুট

[5,8,9,6,4,7,8,1]

আউটপুট

[2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13,]

  1. পাইথনে লিংকড লিস্ট সাইকেল ডিটেকশন

  2. পাইথনে লিংকড লিস্ট রিভার্স

  3. পাইথনে ৩D লিস্ট তৈরি করার প্রোগ্রাম

  4. পাইথনে বাক্যের প্রতিটি শব্দ উল্টে ফেলার প্রোগ্রাম