Əlaqəli Siyahıda Node Silin Leetcode Həll

Çətinlik səviyyəsi Asan
Tez-tez soruşulur Çiy kərpic Amazon alma Bloomberg Cisco Facebook Goldman Sachs google microsoft Qualcomm SamsungBaxılıb 40

Problem bəyanat :

Əlaqəli Siyahıda Node Sil Leetcode Həlli – Funksiyanı yazın bir qovşaq silin tək-təkəlaqəli siyahı. Sən ... əcəksən yox -a giriş imkanı verilsin baş siyahının əvəzinə sizə giriş veriləcək silinəcək node birbaşa.

Bu zəmanətli silinəcək qovşaqdır quyruq düyünü deyil siyahıda.

Misal:

Məsələn 1

Əlaqəli Siyahıda Node Silin Leetcode HəllPin

Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: You are given the second node with value 5, the linked list should become 4 -> 1 -> 9 after calling your function.

 

Məsələn 2

Əlaqəli Siyahıda Node Silin Leetcode HəllPin

Input: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explanation: You are given the third node with value 1, the linked list should become 4 -> 5 -> 9 after calling your function.

Məhdudiyyətlər:

İzahat:

  • Verilmiş a düyün, deyil baş Əlaqədar Siyahıdan.
  • Without başına daxil olmaq etməli olduğumuz siyahıdan silmək verilmiş düyün.
  • Məhdudiyyətdə, verilmiş node ola bilməz quyruq Siyahısından.

Müşahidə:

  • Əgər siyahının başlığı bizdə olsaydı, bu problem asanlıqla xətti vaxtda həll edilə bilərdi, lakin bizdə baş deyil, yalnız düyün var. siyahını təkrarlaya bilməz.
  • İterasiya edir məhdudlaşdırılıb deməli, nəsə etməliyik yerində.
  • O da verilir ki, düyün quyruq ola bilməz siyahının.
  • Əgər müşahidə etsək, onda verilmiş qovşağı silə bilmirik, Çünki nodu silmək üçün əvvəlki node istinad tələb olunur.

Yanaşma:

  • Yuxarıdakı müşahidədən, verilmiş nodu silmək mümkün deyil, lakin biz edə bilərik növbəti nodu silin.
  • Növbəti nodu silmək lazımdırsa, bizim cari düyün olacaq növbəti nodun əvvəlki nodu.
  • Ilk, verilmiş qovşaqda növbəti nodeun dəyərini köçürün.

                                            node.val=node.next.val;

  • İndi, saxlamaq gələcək istinadımız üçün növbəti node.

                                                    ListNode next= node.next.next;

  • Verilmiş qovşağı əvvəlki node kimi düzəldin.

                                                 ListNode əvvəlki = qovşaq;

  • İndi əvvəlki nodun növbəti nodeunu silin.

                                                          prev.next=next;

Əlaqəli Siyahıda Düyün Silinməsi üçün Kod:

Əlaqəli Siyahıda Düyün Silinməsi üçün Java Kodu

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public void deleteNode(ListNode node) {
        node.val=node.next.val;
        ListNode next= node.next.next;
        ListNode prev =node;
        prev.next=next;
    }
}

Əlaqəli Siyahıda Node Silmək üçün C++ Kodu

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
            node->val=node->next->val;
        ListNode* next= node->next->next;
        ListNode* prev =node;
        prev->next=next;
    }
};

Əlaqəli Siyahıda Silinən Düyün Mürəkkəblik Təhlili Leetcode Həll

Zamanın mürəkkəbliyi

O (1), daimi vaxt.

Kosmik Mürəkkəblik 

O(1), sabit fəza.

Translate »