237.删除链表中的节点

1.题目描述:

  请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。

2.解题思路及代码:

  由于不能得到待删除节点的前驱节点,所以不能用常规操作删除。

  此题解法为,将待删除节点的下一节点的值复制到待删除节点,然后删除待删除节点的下一节点

  例:要删除“5”节点

    (1)4->5->1->9 (2)4->1->1->9 (3)4->1->9

  代码如下:

/**
 * 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;
    }
}

 

posted @ 2019-10-28 21:38  teensSpirit  阅读(100)  评论(0编辑  收藏  举报