go + 递归

func isPail( head *ListNode ) bool {
    // write code here
//  递归
    var check func(*ListNode)bool 
    check = func(node *ListNode) bool {
//      链表末尾,则直接返回true
        if node == nil {
            return true
        }

//      进入到下一个节点
        t := check(node.Next)

        if node.Val != head.Val {
            return false
        }
//      链表头节点的下一个节点
        head = head.Next

        return t
    }

    return check(head)
}