CShap 链表指针删除链表节点 源代码
时间: 2023-09-19 13:07:23 浏览: 124
leetcode:203 删除链表中的节点
以下是C#中删除链表节点的示例代码:
```csharp
public class ListNode {
public int val;
public ListNode next;
public ListNode(int val=0, ListNode next=null) {
this.val = val;
this.next = next;
}
}
public class Solution {
public ListNode DeleteNode(ListNode head, int val) {
// 如果要删除的节点是头节点,则直接返回头节点的下一个节点
if (head.val == val) {
return head.next;
}
// 找到要删除的节点的前一个节点
ListNode prev = head;
while (prev.next != null && prev.next.val != val) {
prev = prev.next;
}
// 如果找到了要删除的节点,则将前一个节点的next指向要删除的节点的下一个节点
if (prev.next != null) {
prev.next = prev.next.next;
}
return head;
}
}
```
在这个示例中,我们定义了一个`ListNode`类来表示链表节点,并在`Solution`类中定义了一个`DeleteNode`方法来删除链表中的节点。
在`DeleteNode`方法中,我们首先判断要删除的节点是否是头节点。如果是,我们直接返回头节点的下一个节点。
否则,我们遍历链表找到要删除的节点的前一个节点。如果找到了,我们将前一个节点的`next`指向要删除的节点的下一个节点,从而删除了要删除的节点。
最后,我们返回头节点。
阅读全文