剑指offer,swift-反转链表

输入一个链表,反转链表后,输出新链表的表头。

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        var head = reverseList()
        while head?.next != nil{
            print(head?.val)
            head = head?.next
        }
    }
    func reverseList() -> Node?{
        var head = NodeList().createListNode()
        var pre : Node? = nil
        var next : Node? = head?.next
        while next != nil {
            next = head?.next
            head?.next = pre
            pre = head
            head = next
        }
        return pre
    }
}
class Node {
    var val : Int
    var next : Node?
    init(_ val : Int) {
        self.val = val
        self.next = nil
    }
}
class NodeList {
    func createListNode() -> Node? {
        var head : Node?
        var p : Node?
        for i in 0...10{
            if head == nil{
                head = Node(i)
                p = head
            }else{
                p?.next = Node(i)
                p = p?.next
            }
        }
        return head
    }
}

你可能感兴趣的:(剑指offer,swift-反转链表)