題目:找出單鏈表中倒數(shù)第K個(gè)結(jié)點(diǎn).
核心代碼:
func nthToLastNode(node:ListNode,k:Int) -> ListNode? {
if k <= 0 {
return nil
}
var p1:ListNode? = node
var p2:ListNode? = node
for _ in 0..<k - 1 {
if p2 == nil {
return nil
}
p2 = p2?.next
}
if p2 == nil {
return nil
}
while p2?.next != nil {
p1 = p1?.next
p2 = p2?.next
}
return p1
}
測(cè)試代碼:
var nthNode:ListNode? = listNodeManger.nthToLastNode(node: listNodeManger.headNode!, k: 3)
if nthNode != nil {
print("FlyElephant--倒數(shù)的k個(gè)節(jié)點(diǎn):\(nthNode!.value!)")
}