وقد خوارزمية متشابكة جدا مقال كيفية كتابة. وأخيرا، أعتقد أنه بدأ أبسط مستوى لأنه يكتب، والحصول على بعض بداية من الوزن الثقيل مما الذكاء الاصطناعي، تعلم الآلة الخوارزميات، ولكن أيضا على عدد كبير من استمثال والمعرفة، وتقدر الأبيض ليكون الاكتئاب جدا، وبطبيعة الحال، أنا لا تأتي دائما على حق.
أخطط لتقديم الحلول لكل مشكلة باللغتين لغة ثابتة، وهي لغة ديناميكية.
اخترت لغة C، بايثون وجافا كلغة التنفيذ، بسبب ضيق المكان، وتحقيق لغات أخرى من الأصدقاء الذين يهتمون، يرجى المحاولة بنفسك.
LeetCode 237. حذف قائمة العقد (عقدة حذف في قائمة يحتوي على رابط)
وصف المشكلة:
يرجى كتابة دالة الذي يجعل من الممكن لحذف قائمة معينة (غير نهاية) عقدة، سوف تكون هناك حاجة فقط لإزالة عقدة معينة.
قائمة القائمة - رئيس = ، والتي يمكن التعبير على النحو التالي:
ملاحظة:
على سبيل المثال:
C لغة:
لحذف عقدة في قائمة واحدة، هو العملية الأساسية من قائمة واحدة.
مبدأ القادم هو جعل عقدة عقدة مؤشر محذوفة السلائف عقدة نقطة مباشرة إلى عقدة عقدة خليفة.
وفقا لهذا المبدأ هو أننا بحاجة إلى معرفة العقدة من السلائف.
لكننا ننظر إلى leetcode نماذج وظيفة المقدمة العقدة فقط، العقدة وهذا يعني أننا لا نستطيع أن نعرف السلائف.
نحن تحويل أفكاره، واذا كنا نستطيع تحقيق تبادل لاحق من عقدة محتوى البيانات والعقدة، ولكن لا تغيير عنوان، ثم ما يسمى السلائف يصبح أشياء يمكن الاستغناء عنها.
تلك العقدة السلائف لا تزال عقدة نقطة، ولكن هذه المرة العقدة محتوى والعقد خليفة هي نفس العقدة، ملاحظة أنني أتحدث عن المحتوى، ولكن البيانات . هذه المرة تصبح العقدة خلفا يمكن حذف العقد زائدة عن الحاجة.
كود هي كما يلي:
تذكير: لغة C تحتاج إدارة الذاكرة الخاصة بها، لذلك يجب الإفراج عن العقد الحذف لمنع تسرب الذاكرة.
تنفيذ الثعبان اللغة:
التنفيذ المتسق وتحقيق C الثعبان اللغة.
كود هي كما يلي:
تنفيذ لغة جافا:
تحقيق أساسا نفس تنفيذ جافا ولغة C.
كود هي كما يلي: