Skip to content

Commit 848dee6

Browse files
author
Shuo
authored
Merge pull request #391 from openset/develop
Add: Delete Node in a Linked List
2 parents 8b72986 + d9bca6f commit 848dee6

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,17 @@
11
package delete_node_in_a_linked_list
2+
3+
import . "github.com/openset/leetcode/internal/kit"
4+
5+
/**
6+
* Definition for singly-linked list.
7+
* type ListNode struct {
8+
* Val int
9+
* Next *ListNode
10+
* }
11+
*/
12+
func deleteNode(node *ListNode) {
13+
if node != nil && node.Next != nil {
14+
node.Val = node.Next.Val
15+
node.Next = node.Next.Next
16+
}
17+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,56 @@
11
package delete_node_in_a_linked_list
2+
3+
import (
4+
"reflect"
5+
"testing"
6+
7+
. "github.com/openset/leetcode/internal/kit"
8+
)
9+
10+
type caseType struct {
11+
input []int
12+
node int
13+
expected []int
14+
}
15+
16+
func TestDeleteNode(t *testing.T) {
17+
tests := [...]caseType{
18+
{
19+
input: []int{4, 5, 1, 9},
20+
node: 5,
21+
expected: []int{4, 1, 9},
22+
},
23+
{
24+
input: []int{4, 5, 1, 9},
25+
node: 1,
26+
expected: []int{4, 5, 9},
27+
},
28+
{
29+
input: []int{4, 5, 1, 9},
30+
node: 4,
31+
expected: []int{5, 1, 9},
32+
},
33+
{
34+
input: []int{4, 5, 1, 9},
35+
node: 9,
36+
expected: []int{4, 5, 1, 9},
37+
},
38+
{
39+
input: []int{4, 5, 1, 9},
40+
node: 2,
41+
expected: []int{4, 5, 1, 9},
42+
},
43+
}
44+
for _, tc := range tests {
45+
head := SliceInt2ListNode(tc.input)
46+
node := head
47+
for node != nil && node.Val != tc.node {
48+
node = node.Next
49+
}
50+
deleteNode(node)
51+
output := ListNode2SliceInt(head)
52+
if !reflect.DeepEqual(output, tc.expected) {
53+
t.Fatalf("input: %v, output: %v, expected: %v", tc.input, output, tc.expected)
54+
}
55+
}
56+
}

0 commit comments

Comments
 (0)