informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
hal 1 hal 2
1 -> 1 -> 2 -> 3 -> 3 -> nolp1.val == p2.val lalu hapus p2, perhatikan bahwa p1 tetap tidak berubah saat ini
hal 1 hal 2
1 -> 2 -> 3 -> 3 -> nolp1.val != p2.val Lalu p1, p2 mundur
hal 1 hal 2
1 -> 2 -> 3 -> 3 -> nol
hal 1 hal 2
1 -> 2 -> 3 -> 3 -> nolp1.val == p2.val lalu hapus p2
hal 1 hal 2
1 -> 2 -> 3 -> nolKetika p2 == null keluar dari loop
kode
- 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 adalah node sebelumnya yang akan dihapus. Setiap siklus membandingkan nilai p2 dan p3.
Jika nilai p2 dan p3 diulang, maka p3 terus bergerak mundur hingga ditemukan node yang tidak terduplikasi dengan p2, dan p1 menunjuk ke p3 untuk menyelesaikan penghapusan.
Jika nilai p2 dan p3 tidak tumpang tindih, p1, p2, dan p3 digeser mundur satu posisi dan melanjutkan operasi di atas.
p2 atau p3 adalah null, keluar dari loop
Jika p2 bernilai nol, misalnya, daftar tertaut adalah 1 1 1 nol
hal 1 hal 2 hal 3
s, 1, 1, 1, 2, 3, nolhal 1 hal 2 hal 3
s, 1, 1, 1, 2, 3, nolhal 1 hal 2 hal 3
s, 1, 1, 1, 2, 3, nolhal 1 hal 3
s, 2, 3, nolhal 1 hal 2 hal 3
s, 2, 3, nolhal 1 hal 2 hal 3
s, 2, 3, nol
kode
- 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;
- }