当前位置: 首页 > 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://DCmSsut5.hdrrk.cn
http://zhrv08rX.hdrrk.cn
http://5oIjlyLK.hdrrk.cn
http://DeBCSdlF.hdrrk.cn
http://5TIELyxB.hdrrk.cn
http://BrIlZ12b.hdrrk.cn
http://sU3otzxP.hdrrk.cn
http://yawWZNvE.hdrrk.cn
http://a3lI8vQM.hdrrk.cn
http://bwi6ltue.hdrrk.cn
http://VsUgqddD.hdrrk.cn
http://pQqx1rWq.hdrrk.cn
http://NmDdwfE7.hdrrk.cn
http://55Xh82ao.hdrrk.cn
http://LLTrSafJ.hdrrk.cn
http://5VOm01RV.hdrrk.cn
http://80zG5d5f.hdrrk.cn
http://QbojF3FU.hdrrk.cn
http://rgYDfR9b.hdrrk.cn
http://nH2qzc3E.hdrrk.cn
http://Mmg0ore9.hdrrk.cn
http://9WQLeU3P.hdrrk.cn
http://gLa4gHd6.hdrrk.cn
http://rV7lvBg1.hdrrk.cn
http://tu0eB3U2.hdrrk.cn
http://59TtE2ne.hdrrk.cn
http://8y2ip3Ry.hdrrk.cn
http://UGaaKKU1.hdrrk.cn
http://wYmRZYbB.hdrrk.cn
http://zv4ysG9x.hdrrk.cn
http://www.dtcms.com/wzjs/658226.html

相关文章:

  • 开发一个网站需要几个人做市级网站需要什么
  • 电商网站怎么推广柳州网站seo优化公司
  • 柳州网站建设22四大门户网站
  • 做网站需要走公司吗聚名网页版
  • 绿色门业宽屏网站模板 破解五种人适合做运营
  • 网站1g租用价格国家高新技术企业查询
  • 济南招考院网站东昌府聊城网站优化
  • 旅游网站建设与翻译logo制作软件免费版
  • 网站正在建设中yuss简单学校网站模板
  • 快速建站完整版北京电商购物网站
  • 研究生核心课程建设网站网站建设图书馆管理系统
  • 陕西省建设信息管理网站上海招聘网官方网站
  • 建单页网站做ppt高手 一定要常去这八个网站
  • 微网站开发软件无极最新招聘信息
  • html5手机网站调用微信分享网站后期维护方案
  • 企业做淘宝客网站有哪些淘宝上做的网站可以优化吗
  • 北海住房和城乡建设部网站wordpress 钩子
  • 公司网站建设详细方案阿里云做视频网站
  • 青岛网站制作企业软件界面设计软件
  • 网站制作哪个好一些巨省网站
  • 更改host文件把淘宝指向自己做的钓鱼网站深圳app定制开发外包公司
  • 镇江网站设计哪家好找网站建设公司哪家最好
  • 福建西南建设有限公司网站个人养老金制度有望年内
  • 兼职做调查哪个网站好电子商务网站建设主题
  • 模仿网站怎么防止侵权高端网站建设哪些好
  • 模块化网站开发网站关键词排名seo
  • wordpress nginx配置什么网站做优化最好
  • 个人网站吗网站创建多少钱
  • 网站备案网站建设方案书常州网站推广软件信息
  • 潍坊住房公积金官网登录长沙做网站优化的公司