Swift - LeetCode - 刪除連結串列的倒數第N個節點
題目
刪除連結串列的倒數第N個節點
問題:
給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。
示例:
給定一個連結串列: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,連結串列變為 1->2->3->5.
說明:
給定的 n 保證是有效的。
進階:
你能嘗試使用一趟掃描實現嗎?
解題思路:
典型的利用雙指標法解題。
程式碼:
/** public class SingNode { public var value : Int public var nextNode: SingNode? public init(value:Int) { self.value = value } } **/ func delegateNodeIndex(_ head : SingNode?,_ n:Int) -> SingNode? { let dummyNode : SingNode = SingNode.init(value: 0) dummyNode.nextNode = head var prev:SingNode? = dummyNode var post:SingNode? = dummyNode for _ in 0..<n { post = post?.nextNode } while post?.nextNode != nil { post = post?.nextNode prev = prev?.nextNode } prev?.nextNode = prev?.nextNode?.nextNode return dummyNode.nextNode }