কম্পিউটার

পাইথনে লিঙ্ক করা তালিকায় নোড অদলবদল করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি তালিকা L এবং আরেকটি মান k আছে। আমাদের শুরু থেকে kth নোড এবং শেষ থেকে kth নোড অদলবদল করতে হবে এবং শেষে চূড়ান্ত তালিকা ফেরত দিতে হবে।

সুতরাং, যদি ইনপুট হয় L =[1,5,6,7,1,6,3,9,12] k =3, তাহলে আউটপুট হবে [1,5,3,7,1,6, 6,9,12], শুরু থেকে 3য় নোডটি 6 এবং শেষ থেকে 3, তাই সেগুলি অদলবদল করা হয়েছে৷

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • তাপ :=L
  • আমি 0 থেকে k-2 রেঞ্জের জন্য, কর
    • temp :=temp-এর পরবর্তী
  • firstNode :=temp
  • সেকেন্ড নোড :=L
  • যখন temp এর পরেরটি null না, do
    • secondNode :=secondNode এর পরের
    • temp :=temp-এর পরবর্তী
  • প্রথম নোডের অদলবদল মান এবং দ্বিতীয় নোডের মান
  • প্রত্যাবর্তন এল

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

ক্লাস লিস্টনোড:def __init__(self, data, next =None):self.val =data self.next =nextdef make_list(elements):head =ListNode(elements[0]) উপাদানের উপাদানের জন্য[1:] :ptr =head while ptr.next:ptr =ptr.next ptr.next =ListNode(element) রিটার্ন headdef print_list(head):ptr =head print('[', end ="") যখন ptr:print(ptr. val, end =", ") ptr =ptr. নেক্সট প্রিন্ট(']') def সমাধান(L, k):temp =L i এর জন্য রেঞ্জ (k-1):temp =temp.next firstNode =temp secondNode =L যখন temp.next:secondNode =secondNode.next temp =temp.next firstNode.val , secondNode.val =secondNode.val , firstNode.val ফেরত LL =[1,5,6,7,1,6,3,9 ,12]k =3print_list(solve(make_list(L), k))

ইনপুট

<প্রে>[1,5,6,7,1,6,3,9,12], 3

আউটপুট

[1, 5, 3, 7, 1, 6, 6, 9, 12, ]

  1. পাইথনে লিঙ্ক করা তালিকা থেকে m নোডের পরে n নোড মুছে ফেলার প্রোগ্রাম

  2. পাইথনে একটি কঠোরভাবে ক্রমবর্ধমান লিঙ্কযুক্ত তালিকা

  3. পাইথনে বিজোড় জোড় লিঙ্কযুক্ত তালিকা

  4. পাইথনে প্যালিনড্রোম লিঙ্কড তালিকা