प्रौद्योगिकी साझेदारी

लिकोउ इत्यस्य आदेशितं लिङ्क्ड् सूची डिडुप्लिकेशनम्

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

लिङ्क् कृतसूचौ द्वितीयकतत्त्वानि विलोप्य एकं द्वितीयकं तत्त्वं स्थापयन्तु

पृ1 पृ2
१ -> १ -> २ -> ३ -> ३ -> शून्यम्

p1.val == p2.val ततः p2 विलोपयन्तु, ध्यानं कुर्वन्तु यत् p1 अस्मिन् समये अपरिवर्तितः एव तिष्ठति

पृ1 पृ2
१ -> २ -> ३ -> ३ -> शून्यम्

p1.val != p2.val अथ प1, प2 पश्चात् गच्छन्ति

पृ1 पृ2
१ -> २ -> ३ -> ३ -> शून्यम्
         
पृ1 पृ2
१ -> २ -> ३ -> ३ -> शून्यम्

p1.val == p2.val ततः p2 विलोपयतु

पृ1 पृ2
१ -> २ -> ३ -> शून्यम्

यदा p2 == null तदा लूपतः निर्गच्छन्तु

कोड

  1. public ListNode deleteDuplicates(ListNode head) {
  2. // 链表节点 < 2
  3. if (head == null || head.next == null) {
  4. return head;
  5. }
  6. // 链表节点 >= 2
  7. ListNode p1 = head;
  8. ListNode p2;
  9. while ((p2 = p1.next) != null) {
  10. if (p1.val == p2.val) {
  11. p1.next = p2.next;
  12. } else {
  13. p1 = p1.next;
  14. }
  15. }
  16. return head;
  17. }

न किमपि द्वितीयकं तत्त्वं धारयन्तु

p1 पूर्ववर्ती नोड् अस्ति यत् प्रत्येकं चक्रं p2 तथा p3 इत्येतयोः मूल्ययोः तुलनां करोति ।

  • यदि p2 तथा p3 इत्येतयोः मूल्यानि पुनरावृत्तिः भवति तर्हि p3 यावत् p2 इत्यनेन सह द्वितीयकं न भवति तावत् यावत् नोडः न लभ्यते तावत् यावत् पश्चात् गच्छति, p1 च लोपं पूर्णं कर्तुं p3 इत्यस्मै सूचयति

  • यदि p2 तथा p3 इत्येतयोः मूल्ययोः आच्छादनं न भवति तर्हि p1, p2, p3 च एकेन स्थाने पृष्ठतः स्थानान्तरिताः भवन्ति तथा च उपर्युक्तं कार्यं निरन्तरं कुर्वन्ति ।

  • p2 अथवा p3 शून्यम् अस्ति, पाशतः निर्गच्छन्तु

    • यदा p2 null भवति, उदाहरणार्थं, लिङ्क् कृता सूची 1 1 1 null भवति

 

प१ प२ प३
स, १, १, १, २, ३, शून्यम्

प१ प२ प३
स, १, १, १, २, ३, शून्यम्

प१ प२ प३
स, १, १, १, २, ३, शून्यम्

पृ1 पृ3
स, २, ३, शून्यम्

प१ प२ प३
स, २, ३, शून्यम्

प१ प२ प३
स, २, ३, शून्यम्

कोड

  1. public ListNode deleteDuplicates(ListNode head) {
  2. if (head == null || head.next == null) {
  3. return head;
  4. }
  5. ListNode s = new ListNode(-1, head);
  6. ListNode p1 = s;
  7. ListNode p2;
  8. ListNode p3;
  9. while ((p2 = p1.next) != null && (p3 = p2.next) != null) {
  10. if (p2.val == p3.val) {
  11. while ((p3 = p3.next) != null
  12. && p3.val == p2.val) {
  13. }
  14. p1.next = p3;
  15. } else {
  16. p1 = p1.next;
  17. }
  18. }
  19. return s.next;
  20. }