每天一个小练习!!
2020/07/01 每日一题
237.删除链表中的节点:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点
解题思路:删除一个节点最常见的办法就是改变之前节点的指针,使其指向之后的节点。
由于不知道被删节点的前一个节点,如果使用循环遍历的话时间复杂度(n),不是最便捷的方法。
想要删除已知元素值的节点,只需要将该结点的值赋值为后每一个节点的值,然后该节点的指针直接指向下下个节点就可以了。
definition for singly-linked list
public class ListNode{
int val;
ListNode next;
ListNode(int x) { val = x;}
}
class solution{
node.val = node.next.val;
node.next = node.next.next;
}
时间复杂度:O(1)