一.題目:
實現(xiàn)一種算法阅酪,刪除單向鏈表中間的某個節(jié)點(除了第一個和最后一個節(jié)點宅粥,不一定是中間節(jié)點),假定你只能訪問該節(jié)點诸衔。
示例:
輸入:單向鏈表a->b->c->d->e->f中的節(jié)點c
結(jié)果:不返回任何數(shù)據(jù)雕沉,但該鏈表變?yōu)閍->b->d->e->f
二.題解:
1.第一種解法:
(1)解題思路:
- 把節(jié)點c的val變?yōu)楣?jié)點d(node.next)的val集乔,
- 此時可以看成節(jié)點c已經(jīng)變成了節(jié)點d,
- 改變c(node)的下一個節(jié)點為e(node.next.next)
(2)代碼:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next=node.next.next;
}
}