DeleteLinkedListNodesinO(1)Time标题描述在O(1)时间内删除链表节点。解决方法:如果该节点不是尾节点,可以直接将下一个节点的值赋给该节点,然后让该节点指向下一个节点,然后删除下一个节点,时间复杂度为O(1).否则需要先遍历链表,找到该节点的前一个节点,然后让前一个节点指向null,时间复杂度为O(N)。题目链接:【O(1)时间删除链表节点】()代码/***O(1)时间删除链表节点*/publicclassJz69{/***解决方法:*如果节点不是结束节点,则可以直接将下一个节点的值赋给该节点,然后使该节点指向下一个节点,然后删除下一个节点,时间复杂度为O(1)。*否则需要先遍历链表,找到该节点的前一个节点,然后让前一个节点指向null,时间复杂度为O(N)。**@paramhead*@paramtobeDelete*@return*/publicListNodedeleteNode(ListNodehead,ListNodetobeDelete){if(head==null||tobeDelete==null){returnnull;}if(tobeDelete.next!=null){//要删除的节点不是尾节点ListNodenext=tobeDelete.next;tobeDelete.val=next.val;tobeDelete.next=next.next;}else{if(head==tobeDelete){//只有一个节点head=null;}else{ListNodecur=head;while(cur.next!=tobeDelete){cur=cur.next;}cur.next=null;}}返回头;}publicstaticvoidmain(String[]args){}}【每日留言】窦燕山有正方;教五个儿子,名声在外。
