τα στοιχεία επικοινωνίας μου
Ταχυδρομείοmesophia@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
p1 p2
1 -> 1 -> 2 -> 3 -> 3 -> μηδενικόp1.val == p2.val στη συνέχεια διαγράψτε το p2, σημειώστε ότι το p1 παραμένει αμετάβλητο αυτήν τη στιγμή
p1 p2
1 -> 2 -> 3 -> 3 -> μηδενικόp1.val != p2.val Στη συνέχεια, τα p1, p2 κινούνται προς τα πίσω
p1 p2
1 -> 2 -> 3 -> 3 -> μηδενικό
p1 p2
1 -> 2 -> 3 -> 3 -> μηδενικόp1.val == p2.val και στη συνέχεια διαγράψτε το p2
p1 p2
1 -> 2 -> 3 -> μηδενικόΌταν p2 == null βγείτε από τον βρόχο
κώδικας
- public ListNode deleteDuplicates(ListNode head) {
- // 链表节点 < 2
- if (head == null || head.next == null) {
- return head;
- }
- // 链表节点 >= 2
- ListNode p1 = head;
- ListNode p2;
- while ((p2 = p1.next) != null) {
- if (p1.val == p2.val) {
- p1.next = p2.next;
- } else {
- p1 = p1.next;
- }
- }
- return head;
- }
Ο p1 είναι ο προηγούμενος κόμβος που πρέπει να διαγραφεί. Κάθε κύκλος συγκρίνει τις τιμές του p2 και του p3.
Εάν οι τιμές των p2 και p3 επαναλαμβάνονται, τότε το p3 συνεχίζει να μετακινείται προς τα πίσω έως ότου βρεθεί ένας κόμβος που δεν είναι διπλότυπος με το p2 και το p1 δείχνει στο p3 για να ολοκληρωθεί η διαγραφή.
Εάν οι τιμές των p2 και p3 δεν επικαλύπτονται, τα p1, p2 και p3 μετατοπίζονται προς τα πίσω κατά μία θέση και συνεχίζουν την παραπάνω λειτουργία.
Το p2 ή το p3 είναι μηδενικό, βγείτε από τον βρόχο
Όταν το p2 είναι null, για παράδειγμα, η συνδεδεμένη λίστα είναι 1 1 1 null
p1 p2 p3
s, 1, 1, 1, 2, 3, nullp1 p2 p3
s, 1, 1, 1, 2, 3, nullp1 p2 p3
s, 1, 1, 1, 2, 3, nullp1 p3
s, 2, 3, nullp1 p2 p3
s, 2, 3, nullp1 p2 p3
s, 2, 3, null
κώδικας
- public ListNode deleteDuplicates(ListNode head) {
- if (head == null || head.next == null) {
- return head;
- }
-
- ListNode s = new ListNode(-1, head);
- ListNode p1 = s;
- ListNode p2;
- ListNode p3;
- while ((p2 = p1.next) != null && (p3 = p2.next) != null) {
- if (p2.val == p3.val) {
- while ((p3 = p3.next) != null
- && p3.val == p2.val) {
- }
- p1.next = p3;
- } else {
- p1 = p1.next;
- }
- }
- return s.next;
- }