四时宝库

程序员的知识宝库

Go 代码实践:使用指针(go中的指针)

leetcode 反转链表

指针只能声明,不能用短声明。

var temp *ListNode

// no
temp := *ListNode()

多重赋值

p1, p2 := head, head.Next

代码实例

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
    if head == nil {
        return head
    }

    var temp *ListNode
    p1, p2 := head, head.Next

    for {
        if p2 == nil {
            p1.Next = temp
            break
        }

        p1.Next = temp
        temp = p1
        p1 = p2
        p2 = p2.Next
    }

    return p1
}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接