【linked list】Leetcode 237: Delete Node in a Linked List

https://leetcode.com/problems/delete-node-in-a-linked-list

这道题和常规的删除linked list中某个node不同,这里要删除linked list中一个指定的node,但是只告诉你这个node的地址,而不告诉你这个linked list的head地址,从而无法获取这个node之前的地址。常规办法无法实施,只能work around。思路在代码的注释里。

/**
 * 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的地址,常规方法走不通
//         work around的办法是:
//         1. 先将这个node的val改为next node的val,变的和走一个node一样
//         2. 再将后一个next node删掉
//         所以实际删除的是后一个node,而不是参数传入的哪个node,但是结果是差不多的
        node.val = node.next.val;
        node.next = node.next.next;
        
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容