前言
今天提交之后看运行时0ms,我震惊了。大力出奇迹
正文
问题来源
本问题来自leetcode上的24题。用go语言做的
问题描述
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例 1:
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
说明:
你的算法只能使用常数的额外空间。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
分析:
Go代码如下:
func swapPairs(head *ListNode) *ListNode {
if nil == head {
return head
}
var temp *ListNode
temp = nil
p, q := head, head.Next
if q != nil {
head = head.Next
}
for nil != p && nil != q {
if nil != temp {
temp.Next = q
}
temp = p
p.Next, q.Next = q.Next, p
p = p.Next
if nil == p {
return head
}
q = p.Next
}
return head
}
总结:
多思考是否有简单并且高效的解法
结语
闲来无事的话,多练习练习,做做题。