2
2
3
3
## ้ข็ฎๆ่ฟฐ
4
4
5
- ็ปๅฎๅๅ้พ่กจ็ๅคดๆ้ๅไธไธช่ฆๅ ้ค็่็น็ๅผ๏ผๅฎไนไธไธชๅฝๆฐๅ ้ค่ฏฅ่็นใ
5
+ < p > ็ปๅฎๅๅ้พ่กจ็ๅคดๆ้ๅไธไธช่ฆๅ ้ค็่็น็ๅผ๏ผๅฎไนไธไธชๅฝๆฐๅ ้ค่ฏฅ่็นใ</ p >
6
6
7
- ่ฟๅๅ ้คๅ็้พ่กจ็ๅคด่็นใ
7
+ < p > ่ฟๅๅ ้คๅ็้พ่กจ็ๅคด่็นใ</ p >
8
8
9
- ๆณจๆ๏ผๆญค้ขๅฏนๆฏ [ ๅ้ข ] ( /solution/0200-0299/0237.Delete%20Node%20in%20a%20Linked%20List/README.md ) ๆๆนๅจใ
9
+ < p >< strong > ๆณจๆ๏ผ</ strong >ๆญค้ขๅฏนๆฏๅ้ขๆๆนๅจ</ p >
10
10
11
- ** ็คบไพ 1:**
11
+ < p >< strong > ็คบไพ 1:</ strong ></ p >
12
12
13
- ```
14
- ่พๅ
ฅ: head = [4,5,1,9], val = 5
15
- ่พๅบ: [4,1,9]
16
- ่งฃ้: ็ปๅฎไฝ ้พ่กจไธญๅผไธบย 5ย ็็ฌฌไบไธช่็น๏ผ้ฃไนๅจ่ฐ็จไบไฝ ็ๅฝๆฐไนๅ๏ผ่ฏฅ้พ่กจๅบๅไธบ 4 -> 1 -> 9.
17
- ```
13
+ <pre ><strong >่พๅ
ฅ:</strong > head = [4,5,1,9], val = 5
14
+ <strong >่พๅบ:</strong > [4,1,9]
15
+ <strong >่งฃ้: </strong >็ปๅฎไฝ ้พ่กจไธญๅผไธบ  ; 5  ; ็็ฌฌไบไธช่็น๏ผ้ฃไนๅจ่ฐ็จไบไฝ ็ๅฝๆฐไนๅ๏ผ่ฏฅ้พ่กจๅบๅไธบ 4 -> ; 1 -> ; 9.
16
+ </pre >
18
17
19
- ** ็คบไพ 2:**
18
+ < p >< strong > ็คบไพ 2:</ strong ></ p >
20
19
21
- ```
22
- ่พๅ
ฅ: head = [4,5,1,9], val = 1
23
- ่พๅบ: [4,5,9]
24
- ่งฃ้: ็ปๅฎไฝ ้พ่กจไธญๅผไธบย 1ย ็็ฌฌไธไธช่็น๏ผ้ฃไนๅจ่ฐ็จไบไฝ ็ๅฝๆฐไนๅ๏ผ่ฏฅ้พ่กจๅบๅไธบ 4 -> 5 -> 9.
25
- ```
20
+ <pre ><strong >่พๅ
ฅ:</strong > head = [4,5,1,9], val = 1
21
+ <strong >่พๅบ:</strong > [4,5,9]
22
+ <strong >่งฃ้: </strong >็ปๅฎไฝ ้พ่กจไธญๅผไธบ  ; 1  ; ็็ฌฌไธไธช่็น๏ผ้ฃไนๅจ่ฐ็จไบไฝ ็ๅฝๆฐไนๅ๏ผ่ฏฅ้พ่กจๅบๅไธบ 4 -> ; 5 -> ; 9.
23
+ </pre >
24
+
25
+ <p >  ; </p >
26
26
27
- ** ่ฏดๆ๏ผ**
27
+ < p >< strong > ่ฏดๆ๏ผ</ strong ></ p >
28
28
29
- - ้ข็ฎไฟ่ฏ้พ่กจไธญ่็น็ๅผไบไธ็ธๅ
30
- - ่ฅไฝฟ็จ C ๆ C++ ่ฏญ่จ๏ผไฝ ไธ้่ฆ ` free ` ๆ ` delete ` ่ขซๅ ้ค็่็น
29
+ <ul >
30
+ <li>้ข็ฎไฟ่ฏ้พ่กจไธญ่็น็ๅผไบไธ็ธๅ</li>
31
+ <li>่ฅไฝฟ็จ C ๆ C++ ่ฏญ่จ๏ผไฝ ไธ้่ฆ <code>free</code> ๆ <code>delete</code> ่ขซๅ ้ค็่็น</li>
32
+ </ul >
31
33
32
34
## ่งฃๆณ
33
35
47
49
# self.next = None
48
50
class Solution :
49
51
def deleteNode (self , head : ListNode, val : int ) -> ListNode:
50
- dummy = ListNode(0 )
51
- dummy.next = head
52
- pre = dummy
52
+ pre = dummy = ListNode(next = head)
53
53
while pre.next and pre.next.val != val:
54
54
pre = pre.next
55
55
pre.next = None if not pre.next else pre.next.next
@@ -68,17 +68,16 @@ class Solution:
68
68
* }
69
69
*/
70
70
class Solution {
71
+
71
72
public ListNode deleteNode (ListNode head , int val ) {
72
- ListNode dummy = new ListNode (0 );
73
- dummy. next = head;
73
+ ListNode dummy = new ListNode (0 , head);
74
74
ListNode pre = dummy;
75
- while (pre. next != null && pre. next. val != val) {
76
- pre = pre. next;
77
- }
75
+ for (; pre. next != null && pre. next. val != val; pre = pre. next);
78
76
pre. next = pre. next == null ? null : pre. next. next;
79
77
return dummy. next;
80
78
}
81
79
}
80
+
82
81
```
83
82
84
83
### ** JavaScript**
@@ -97,36 +96,33 @@ class Solution {
97
96
* @return {ListNode}
98
97
*/
99
98
var deleteNode = function (head , val ) {
100
- const dummy = new ListNode (0 );
101
- dummy .next = head;
99
+ const dummy = new ListNode (0 , head);
102
100
let pre = dummy;
103
- while (pre .next && pre .next .val != val) {
104
- pre = pre .next ;
105
- }
106
- pre .next = pre .next ? pre .next .next : null ;
101
+ for (; pre .next && pre .next .val != val; pre = pre .next );
102
+ pre .next = pre .next ? .next ;
107
103
return dummy .next ;
108
104
};
109
105
` ` `
110
106
111
107
### **Go**
112
108
113
109
` ` ` go
110
+ /**
111
+ * Definition for singly-linked list.
112
+ * type ListNode struct {
113
+ * Val int
114
+ * Next *ListNode
115
+ * }
116
+ */
114
117
func deleteNode (head * ListNode, val int) * ListNode {
115
- res := &ListNode{
116
- Val: 0 ,
117
- Next: head,
118
- }
119
- pre := res
120
- cur := res.Next
121
- for cur != nil {
122
- if cur.Val == val {
123
- pre.Next = cur.Next
124
- return res.Next
125
- }
126
- cur = cur.Next
127
- pre = pre.Next
128
- }
129
- return res.Next
118
+ dummy := & ListNode{0 , head}
119
+ pre := dummy
120
+ for ; pre .Next != nil && pre .Next .Val != val; pre = pre .Next {
121
+ }
122
+ if pre .Next != nil {
123
+ pre .Next = pre .Next .Next
124
+ }
125
+ return dummy .Next
130
126
}
131
127
` ` `
132
128
@@ -143,28 +139,12 @@ func deleteNode(head *ListNode, val int) *ListNode {
143
139
*/
144
140
class Solution {
145
141
public:
146
- ListNode* deleteNode(ListNode* head, int val) {
147
- ListNode* cur = head;
148
- if (!head) {
149
- return nullptr;
150
- }
151
-
152
- if (head->val == val) {
153
- // ็ฌฌไธไธชๅฐฑๅน้
็ๆ
ๅต
154
- return head->next;
155
- }
156
-
157
- while (cur && cur->next) {
158
- if (cur->next->val == val) {
159
- // ๅฆๆๆพๅฐไบ๏ผ็ดๆฅๆๅไธไธไธช
160
- cur->next = cur->next->next;
161
- break;
162
- } else {
163
- cur = cur->next;
164
- }
165
- }
166
-
167
- return head;
142
+ ListNode * deleteNode (ListNode * head , int val ) {
143
+ ListNode * dummy = new ListNode (0 , head);
144
+ ListNode * pre = dummy;
145
+ for (; pre- > next && pre- > next- > val != val; pre = pre- > next);
146
+ pre- > next = pre- > next ? pre- > next- > next : nullptr;
147
+ return dummy- > next;
168
148
}
169
149
};
170
150
` ` `
0 commit comments