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、软件架构、深度学习相关专栏。
您的支持是对我最大的鼓励。