1.正向遍歷,移動指針
class Solution {
func reverseList(_ head: ListNode?) -> ListNode? {
var pre: ListNode? = nil
var current = head
while current != nil {
let tmp_next = current?.next
current?.next = pre
pre = current
current = tmp_next
}
return current
}
}
2.遞歸
class Solution {
func reverseList(_ head: ListNode?) -> ListNode? {
if head == nil || head?.next == nil {
return head
}
let newHead = reverseList(head?.next)
head?.next?.next = head
head?.next = nil
return newHead
}
}