LeetCode反转链表Swift 面试
反转一个单链表。
示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
进阶:
你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
思路:双指针迭代
public class ListNode { public var val: Int public var next: ListNode? public init(_ val: Int) { self.val = val self.next=nil } }
func reverseList(_ head: ListNode?) -> ListNode? { var old = head//旧链表 var new: ListNode? = nil//新链表 var temp: ListNode? = nil//临时结点 while old != nil { //对原链表做头删操作 temp = old old = old?.next //对新链表做头插操作 temp?.next = new new = temp } return new }
借鉴:https://blog.csdn.net/qq_42351880/article/details/88637387
在北京的灯中,有一盏是我家的。这个梦何时可以实现?哪怕微微亮。北京就像魔鬼训练营,有能力的留,没能力的走……