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

JAVA learning - "लिङ्क्ड् सूचीतत्त्वान् दूरीकर्तुं" कार्यान्वितुं Java इत्यस्य उपयोगस्य अभ्यासः ।

2024-07-12

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

प्रश्न:

लिङ्क्ड् सूचीयाः हेड नोड् हेड् तथा च पूर्णाङ्क val दृष्ट्वा, कृपया लिङ्क्ड् सूचीयां सर्वाणि नोड््स् विलोपयन्तु ये Node.val == val इत्यस्य सन्तुष्टिं कुर्वन्ति तथा च नूतनं हेड नोड् प्रत्यागच्छन्तु ।

उदाहरणम् १ : १.

निवेशः शिरः = [१,२,६,३,४,५,६], वाल = ६
निर्गमः [१,२,३,४,५] ।
उदाहरणम् २ : १.

निवेशः शिरः = [], वल = 1
निर्गमः []
उदाहरणम् ३ : १.

निवेशः शिरः = [7,7,7,7], वाल = 7
निर्गमः []
संकेत:

सूचीयां नोड्स् संख्या [0, 104] परिधिमध्ये अस्ति ।
१ <= नोड.वल <= ५०
० <= वल <= ५०

उत्तरविचाराः : १.

निम्नलिखितः कोडः अस्ति यः लिङ्क्ड् सूचीतः तत्त्वानि निष्कासयितुं समस्यायाः समाधानार्थं जावा इत्यस्य उपयोगं करोति ।

  1. class ListNode {
  2. int val;
  3. ListNode next;
  4. ListNode(int val) {
  5. this.val = val;
  6. }
  7. }
  8. public class RemoveLinkedListElements {
  9. public ListNode removeElements(ListNode head, int val) {
  10. // 创建一个虚拟头节点,方便处理头节点可能被删除的情况
  11. ListNode dummy = new ListNode(0);
  12. dummy.next = head;
  13. ListNode curr = dummy;
  14. while (curr.next!= null) {
  15. if (curr.next.val == val) {
  16. curr.next = curr.next.next;
  17. } else {
  18. curr = curr.next;
  19. }
  20. }
  21. return dummy.next;
  22. }
  23. public static void main(String[] args) {
  24. // 构建链表
  25. ListNode head = new ListNode(1);
  26. ListNode node2 = new ListNode(2);
  27. ListNode node3 = new ListNode(6);
  28. ListNode node4 = new ListNode(3);
  29. ListNode node5 = new ListNode(4);
  30. ListNode node6 = new ListNode(5);
  31. ListNode node7 = new ListNode(6);
  32. head.next = node2;
  33. node2.next = node3;
  34. node3.next = node4;
  35. node4.next = node5;
  36. node5.next = node6;
  37. node6.next = node7;
  38. RemoveLinkedListElements solution = new RemoveLinkedListElements();
  39. ListNode newHead = solution.removeElements(head, 6);
  40. // 打印移除指定值后的链表
  41. while (newHead!= null) {
  42. System.out.print(newHead.val + " ");
  43. newHead = newHead.next;
  44. }
  45. }
  46. }

अस्य कोडस्य विचारः अस्ति : वर्चुअल् हेड नोड् रचयन्तु ' ।नकली ', तस्य 'next' सूचकं मूललिङ्क् कृतसूचिकायाः ​​head node 'head' -इत्यत्र सूचयन्तु । ततः, लूप् मार्गेण लिङ्क्ड् सूचीं भ्रमन्तु, यदा 'val' इत्यस्य सममूल्यं नोड् सम्मुखीभवति तदा लिङ्क्ड् सूचीतः लोप्यते । अन्ते 'dummy' इत्यस्य 'next' नोड् प्रत्यागच्छति, यत् निर्दिष्टं मूल्य नोड् विलोपनानन्तरं नूतनलिङ्क्ड् सूचीयाः हेड नोड् भवति ।
(लेखः जावा-शिक्षणप्रक्रियायां लेखकस्य केषाञ्चन व्यक्तिगत-अनुभवानाम् सारांशः सन्दर्भः च अस्ति । यदि किमपि अनुचितं वा गलतं वा स्थानं भवति तर्हि कृपया तान् आलोचनां कृत्वा सम्यक् कुर्वन्तु । वयं तान् सम्यक् कर्तुं परिश्रमं करिष्यामः । यदि किमपि उल्लङ्घनम् अस्ति , पोस्ट् विलोपयितुं लेखकेन सह सम्पर्कं कुर्वन्तु।)