آرین سلیمان‌زاده
  • خانه
  • وبلاگ
  • پادکست‌ها
  • ویدیوها
  • کتابخانه
  • تماس با من
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
پنل•تماس سریع

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

درخواست همکاری یا مشاوره

پیام خود را درباره همکاری، مشاوره، توسعه محصول یا پروژه نرم‌افزاری ارسال کنید.

LinkedInپاسخ سریع
کتابخانه الگوریتم ←/لیست‌های پیوندی/پیمایش معکوس
یادداشت کامل الگوریتم

پیمایش معکوس

Reverse Traversal

پیمایش معکوس یک الگوریتم از دسته لیست‌های پیوندی است. این الگوریتم Linked List به‌جای index از referenceها عبور می‌کند؛ بنابراین ترتیب تغییر pointer/reference مهم‌ترین بخش correctness است.

نوعالگوریتمدستهلیست‌های پیوندیسطحپایهپیچیدگی معمولVaries by implementation / input constraints
جواب کوتاه و حرفه‌ای

اول این مفهوم را در ذهن نگه دار

پیمایش معکوس یک الگوریتم از دسته لیست‌های پیوندی است. این الگوریتم Linked List به‌جای index از referenceها عبور می‌کند؛ بنابراین ترتیب تغییر pointer/reference مهم‌ترین بخش correctness است.

01
توضیح ساده

چطور کار می‌کند؟ ساده و مرحله‌ای

01

برای فهم پیمایش معکوس ابتدا invariant و stateای را پیدا کن که در هر مرحله تغییر می‌کند.

02

پیچیدگی معمول این موضوع Varies by implementation / input constraints است؛ آن را از روی loop، recursion، عملیات ساختمان داده و constraintهای ورودی تحلیل کن، نه فقط از حفظ.

02
روند اجرا

الگوریتم را به شکل تصمیم‌های پشت سر هم بخوان

01

اگر قرار است link عوض شود next را قبلش ذخیره کن.

02

current/previous را با ترتیب درست جلو ببر.

03

لیست خالی و تک‌Node را جدا بررسی کن.

یک مثال کوچک برای فهم بهتر

یک ورودی خیلی کوچک را دستی اجرا کن و بعد از هر عملیات مهم state را بنویس. برای پیمایش معکوس هدف این است که invariant را ببینی، نه اینکه کد را حفظ کنی.

پیچیدگی

Varies by implementation / input constraints

این Complexity را حفظی نگو. اول مشخص کن مربوط به کدام عملیات یا بعد ورودی است؛ بعد هزینه را از روی loopها، عمق recursion، عملیات ساختمان داده و فرض‌های preprocessing نتیجه بگیر.

03
چه زمانی استفاده کنیم؟

موارد مناسب

  • وقتی مسئله مستقیماً روی linkهای Nodeها تعریف شده مناسب است.
04
اشتباهات رایج

کجا معمولاً اشتباه می‌کنیم؟

  • با overwrite کردن next ادامه لیست را گم نکن.
  • edge case مربوط به null را مدیریت کن.
در مصاحبه چطور توضیح بدهیم؟

مدل یک پاسخ حرفه‌ای

برای توضیح حرفه‌ای پیمایش معکوس در مصاحبه، مسئله‌ای که حل می‌کند، invariant، state یا ساختمان داده اصلی، پیچیدگی Varies by implementation / input constraints و شرایطی که باعث می‌شود روش دیگری انتخاب کنی را بگو.

مسئله→ایده اصلی→Invariant / State→Big-O→Trade-off
چند سؤال مصاحبه‌ای سریع

پیمایش معکوس چه مسئله‌ای را حل می‌کند؟

پیمایش معکوس یک الگوریتم از دسته لیست‌های پیوندی است. این الگوریتم Linked List به‌جای index از referenceها عبور می‌کند؛ بنابراین ترتیب تغییر pointer/reference مهم‌ترین بخش correctness است.

درباره Complexity چه چیزی باید بگویم؟

پیچیدگی معمول اینجا Varies by implementation / input constraints است، اما جواب کامل باید این هزینه را به representation، constraint ورودی و عملیات غالب وصل کند.

رایج‌ترین اشتباه چیست؟

با overwrite کردن next ادامه لیست را گم نکن.

موضوعات مرتبط برای ادامه مطالعهLinked ListTwo Pointerبرعکس کردن referenceها
منبع و مطالعه بیشتر

این درس برای مطالعه آرام و آمادگی مصاحبه به‌صورت مستقل نوشته شده و فهرست موضوعات آن از trekhleb/javascript-algorithms الهام گرفته است. مخزن اصلی implementationها، testها و README تخصصی هر موضوع را دارد.

باز کردن مخزن اصلی ↗
آرین سلیمان‌زاده

پورتفولیوی شخصی با تمرکز بر Agentic CRM، سامانه‌های هوشمند کسب‌وکار، مهندسی مدرن وب، طراحی سیستم‌های رابط کاربری و توسعه محصولات نرم‌افزاری کاربردی.

لینک‌های سریع

  • درباره من
  • وبلاگ
  • کتابخانه
  • تماس

ارتباط

  • soleimanzadeh.a.work@gmail.com
  • soleimanzadeh.uni@gmail.com

در دسترس: روزهای کاری

معمولاً پاسخ در ۲۴ ساعت

خبرنامه

به‌روزرسانی‌های مربوط به نوشته‌ها، پروژه‌ها و انتشارهای جدید را دریافت کنید.

© 2026 ariansoleimanzadeh.dev — تمامی حقوق محفوظ است.

لینکدین