1.题目
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
2.解法
走到指定位置后,就将指向next.next。
注意要先拦截判断head.val是否是目标节点,然后要从p.next 开始走。
public ListNode deleteNode (ListNode head, int val) {
// write code here
if(head.val==val) return head.next;
ListNode p = head;
while (p.next!=null) {
if(p.next.val==val){
p.next = p.next.next;
}
p = p.next;
}
return head;
}
总结
走到指定位置后,就将指向next.next。
算法系列在github上有一个开源项目,主要是本系列博客的demo代码。https://github.com/forestnlp/alg
如果您对软件开发、机器学习、深度学习有兴趣请关注本博客,将持续推出Java、软件架构、深度学习相关专栏。
您的支持是对我最大的鼓励。
这篇博客介绍了如何在单向链表中删除具有特定值的节点。通过遍历链表,找到目标节点并将其前一个节点的next指针指向目标节点的下一个节点来实现删除操作。文章还提供了相应的Java代码实现,并强调了在处理边界条件时的注意事项。此外,博主分享了一个专注于算法和编程实践的GitHub开源项目。
772

被折叠的 条评论
为什么被折叠?



