【剑指offer】面试题18:删除链表的节点(Java)
給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。
返回刪除后的鏈表的頭節點。
注意:此題對比原題有改動
示例 1:
輸入: head = [4,5,1,9], val = 5
輸出: [4,1,9]
解釋: 給定你鏈表中值為?5?的第二個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 1 -> 9.
示例 2:
輸入: head = [4,5,1,9], val = 1
輸出: [4,5,9]
解釋: 給定你鏈表中值為?1?的第三個節點,那么在調用了你的函數之后,該鏈表應變為 4 -> 5 -> 9.
?
代碼:
/**
?*?Definition?for?singly-linked?list.
?*?public?class?ListNode?{
?*?????int?val;
?*?????ListNode?next;
?*?????ListNode(int?x)?{?val?=?x;?}
?*?}
?*/
class?Solution?{
????public?ListNode?deleteNode(ListNode?head,?int?val)?{
????????if(head.val==val)
????????{
????????????head?=?head.next;
????????????return?head;
????????}
????????ListNode?p=head,q=p.next;
????????while(q!=null&&q.next!=null)
????????{
????????????if(q!=null&&q.val!=val)
????????????{
????????????????p?=?q;
????????????????q?=q.next;
????????????}
????????????else?if(q.val==val)
????????????{
????????????????p.next?=?q.next;
???????????????//?System.out.println(p.val);
????????????????return?head;
????????????}
????????}
????????if(q.val==val)
????????{
????????????p.next=null;
????????}
????????return?head;
????}
}
總結
以上是生活随笔為你收集整理的【剑指offer】面试题18:删除链表的节点(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [数据库]数据库三级加锁协议深入理解
- 下一篇: Leetcode--105. 从前序与中