CShap 删除链表 源代码
时间: 2023-09-30 16:10:57 浏览: 70
以下是C#代码,用于删除链表中的节点:
```csharp
public class ListNode {
public int val;
public ListNode next;
public ListNode(int x) { val = x; }
}
public class Solution {
public ListNode DeleteNode(ListNode head, int val) {
if (head == null) {
return null;
}
if (head.val == val) {
return head.next;
}
ListNode prev = head;
ListNode node = head.next;
while (node != null && node.val != val) {
prev = node;
node = node.next;
}
if (node != null) {
prev.next = node.next;
}
return head;
}
}
```
在这个解决方案中,我们首先检查头节点是否与要删除的值相等。如果是,我们将头节点的下一个节点作为新的头节点返回。否则,我们使用`prev`和`node`指针遍历链表,查找要删除的节点。一旦找到该节点,我们将`prev`节点的下一个节点设置为`node`节点的下一个节点,从而删除`node`节点。最后,我们返回头节点。
阅读全文