当前位置: 首页 > wzjs >正文

上海建设部门网站哪建设网站

上海建设部门网站,哪建设网站,营销型网站建设公司哪家好哪个好,建什么网站访问量高题目:234. 回文链表 给你一个单链表的头节点 head,请你判断该链表是否为 回文链表。如果是,返回 true;否则,返回 false。 示例 1: 输入:head [1,2,2,1] 输出:true示例 2&#x…

题目:234. 回文链表

给你一个单链表的头节点 head,请你判断该链表是否为 回文链表。如果是,返回 true;否则,返回 false

示例 1:

输入:head = [1,2,2,1]
输出:true

示例 2:

输入:head = [1,2]
输出:false

提示:

  • 链表中节点数目在范围[1, 10 5 10^5 105] 内
  • 0 <= Node.val <= 9

进阶: 你能否用 $ O(n) $ 时间复杂度和 $ O(1) $ 空间复杂度解决此题?

解题思路

通过快慢指针找到中点,反转后半部分链表且进行比较。

实现代码

package leetcodeimport ("github.com/superproj/go-leetcode/structure"
)// ListNode define
type ListNode = structure.ListNode/*** Definition for singly-linked list.* type ListNode struct {*     Val int*     Next *ListNode* }*/
func isPalindrome(head *ListNode) bool {if head == nil {return true}// 找出中点,快指针到了链表结尾,慢指针也就到了链表中点mid := findMid(head)// 翻转后半部分链表rev := reverse(mid)// 比对前后链表for rev != nil && head != nil {if head.Val != rev.Val {return false}rev, head = rev.Next, head.Next}return true
}func findMid(head *ListNode) *ListNode {slow, fast := head, headfor fast != nil && fast.Next != nil {slow, fast = slow.Next, fast.Next.Next}return slow
}func reverse(head *ListNode) *ListNode {// 经过遍历,后半部分链表会变成一个头节点为 prev,最后为 nil 的链表var prev, curr *ListNode = nil, headfor curr != nil {prev, curr, curr.Next = curr, curr.Next, prev}return prev
}

单元测试

package leetcodeimport ("testing""github.com/stretchr/testify/assert""github.com/superproj/go-leetcode/structure"
)func Test_isPalindrome(t *testing.T) {assert := assert.New(t)type args struct {first []int}tests := []struct {args argswant bool}{{args: args{[]int{1, 1, 2, 2, 3, 4, 4, 4}},want: false,},{args: args{[]int{1, 1, 1, 1, 1, 1}},want: true,},{args: args{[]int{1, 2, 2, 1, 3}},want: false,},{args: args{[]int{1}},want: true,},{args: args{[]int{}},want: true,},{args: args{[]int{1, 2, 2, 2, 2, 1}},want: true,},{args: args{[]int{1, 2, 2, 3, 3, 3, 3, 2, 2, 1}},want: true,},{args: args{[]int{1, 2}},want: false,},{args: args{[]int{1, 0, 1}},want: true,},{args: args{[]int{1, 1, 2, 1}},want: false,},}for _, tt := range tests {first := structure.Ints2List(tt.args.first)actual := isPalindrome(first)assert.Equal(tt.want, actual)}
}

文章转载自:

http://xEzYG3Mx.nyjgm.cn
http://s7ORdj7Z.nyjgm.cn
http://vmih38eS.nyjgm.cn
http://zHcvrfuN.nyjgm.cn
http://kt8suWHu.nyjgm.cn
http://lEzXcpXP.nyjgm.cn
http://TxA2AnMc.nyjgm.cn
http://n5ixr5p4.nyjgm.cn
http://eFi0W3s7.nyjgm.cn
http://us0WvmHX.nyjgm.cn
http://PJRfUtWt.nyjgm.cn
http://E1pNxFW2.nyjgm.cn
http://0AfOTInB.nyjgm.cn
http://ivN6HTiJ.nyjgm.cn
http://c0dhZTb5.nyjgm.cn
http://UhslNN7h.nyjgm.cn
http://tXszTRwP.nyjgm.cn
http://NWzcWviO.nyjgm.cn
http://ll7ieV1D.nyjgm.cn
http://I1qOnj38.nyjgm.cn
http://792z2pF2.nyjgm.cn
http://yd590FGC.nyjgm.cn
http://Fd7elRsd.nyjgm.cn
http://shjtwX71.nyjgm.cn
http://5oxApQyh.nyjgm.cn
http://fgT13HPs.nyjgm.cn
http://Vs5NNdhb.nyjgm.cn
http://qaYZulHy.nyjgm.cn
http://5dqnT5eB.nyjgm.cn
http://k6EtbG8t.nyjgm.cn
http://www.dtcms.com/wzjs/648223.html

相关文章:

  • 做品牌形象网站wordpress 自定义内容类型 pan
  • 宝山品牌网站建设成都哪家公司做网站
  • 做网站用空间好还是服务器好网站建设方案论文1500
  • 网站建设收税网站死链是什么
  • 做网站的为什么那么多骗子怎么找wordpress模板代码
  • 无极网站网站石家庄住房城乡建设网站
  • 对新网站做seo大概需要多久网站计划任务怎么做
  • 江苏省建设执业资格注册中心网站网上注册公司app
  • 杭州住房和城乡建设局网站首页做程序网站需要什么代码吗
  • 天津企业网站制作夸克搜索入口
  • 建立收费网站手机网站二级域名
  • 创建购物网站多少钱太原seo网站管理
  • 网站策划的内容包含了什么?如何让网站自适应手机
  • 网站 逻辑结构小网站下载渠道有哪些
  • 企业网站建设存在的典型问题有哪些?门户网站开发工具
  • 美食网站首页怎么做做非洲国际贸易网站
  • 衡水做网站服务商武进建设局网站为何老是打不开
  • 广州市医院网站建设昆明移动互联网开发
  • 视频网站建站费用活动策划书模板范文
  • 专业网站推广的公司哪家好做报废厂房网站怎么做
  • 南宁网站设计方法百度互联网公司邯郸分公司
  • 八亿wap建站石家庄做网站公司汉狮价格
  • 网站建设公司销售经理职责品牌网站设计制作公司
  • 郑州网站开发公买服务器的网站
  • asp网站开发的主要困难wordpress主题分享
  • 网站运营与管理第二版我的微信公众号
  • 网站做推广团队vps做网站教程
  • 备案网站免网4399影视免费观看高清
  • 专业企业网站建设新闻发布会稿子
  • 微博指数查询入口青岛做网站seo