golabel怎样旋转文字,golabel打印时字体打印不了

首页 > 经验 > 作者:YD1662022-10-28 06:14:40

golabel怎样旋转文字,golabel打印时字体打印不了(1)

1 题目描述

给定一个链表,向右旋转k位,k为非负数。

例子1:

输入:1->2->3->4->5->NULL, k = 2

输出:4->5->1->2->3->NULL

释义:

向右旋转1步:5->1->2->3->4->NULL

向右旋转2步:4->5->1->2->3->NULL

例子2:

输入:0->1->2->NULL, k = 4

输出:2->0->1->NULL

释义:

向右旋转1步:2->0->1->NULL

向右旋转2步:1->2->0->NULL

向右旋转3步:0->1->2->NULL

向右旋转4步:2->0->1->NULL

题目出处:

https://leetcode.com/problems/rotate-list/

2 解决思路

1)首先,p、q两个指针都指向head;

2)然后,p先走k步;

2.1)若到达尾节点时,正好走了k步,则无需处理,直接返回head即可;

2.1)若k步未走完即到达尾节点,则说明k比链表长度大,可以将k模除链表长度后,再返回1)开始计算;

3)然后,p与q一起走,直至p抵达尾节点,这时,即找到了旋转的分割点。需要将这两段连接起来,即将p的下一个节点指向原头节点,q的下一个节点即为新的头节点,q即为新的尾节点,然后返回新的头节点即可。

3 Golang实现代码

注意:Golang循环中,break Label与goto Label的区别,break的Label仅可用于循环,且需放在for循环前面,且跳到Label后不会再执行for循环里的代码;而goto的Label可用于循环,也可用于非循环,可以放在for循环前面,也可以放在for循环后面,当Label放在循环前面时,跳到Label后,还会继续执行Label后的代码。

https://github.com/olzhy/leetcode/blob/master/61_Rotate_List/test.go

golabel怎样旋转文字,golabel打印时字体打印不了(2)

原文链接:https://leileiluoluo.com/posts/leetcode-rotate-list.html

本文作者:磊磊落落的博客,原创授权发布

golabel怎样旋转文字,golabel打印时字体打印不了(3)

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.