22. Leetcode 237. 删除链表中的节点 (链表-基础操作类-删除链表的节点)
生活随笔
收集整理的這篇文章主要介紹了
22. Leetcode 237. 删除链表中的节点 (链表-基础操作类-删除链表的节点)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
請(qǐng)編寫一個(gè)函數(shù),用于 刪除單鏈表中某個(gè)特定節(jié)點(diǎn) 。在設(shè)計(jì)函數(shù)時(shí)需要注意,你無法訪問鏈表的頭節(jié)點(diǎn)?head ,只能直接訪問 要被刪除的節(jié)點(diǎn) 。題目數(shù)據(jù)保證需要?jiǎng)h除的節(jié)點(diǎn) 不是末尾節(jié)點(diǎn) 。示例 1:輸入:head = [4,5,1,9], node = 5
輸出:[4,1,9]
解釋:指定鏈表中值為?5?的第二個(gè)節(jié)點(diǎn),那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?4 -> 1 -> 9
示例 2:輸入:head = [4,5,1,9], node = 1
輸出:[4,5,9]
解釋:指定鏈表中值為?1?的第三個(gè)節(jié)點(diǎn),那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?4 -> 5 -> 9
示例 3:輸入:head = [1,2,3,4], node = 3
輸出:[1,2,4]
示例 4:輸入:head = [0,1], node = 0
輸出:[1]思路: 由于這道題目只輸入了需要?jiǎng)h除的節(jié)點(diǎn) node,因此無法獲取刪除 節(jié)點(diǎn) node 的前一個(gè)節(jié)點(diǎn) pre,從而也就無法將前一個(gè)節(jié)點(diǎn) pre 指 向刪除節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn) next;既然無法通過修改指針完成,那 么肯定要修改鏈表節(jié)點(diǎn)的值了,所以只要將刪除節(jié)點(diǎn) node 的值和 指針都改為下一個(gè)節(jié)點(diǎn) next 的值和指針即可。# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = Noneclass Solution:def deleteNode(self, node):""":type node: ListNode:rtype: void Do not return anything, modify node in-place instead."""node.val = node.next.valnode.next = node.next.next
總結(jié)
以上是生活随笔為你收集整理的22. Leetcode 237. 删除链表中的节点 (链表-基础操作类-删除链表的节点)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链表常用技巧
- 下一篇: 23. Leetcode 86. 分隔链