码迷,mamicode.com
首页 > 其他好文 > 详细

旋转链表

时间:2021-04-12 11:49:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:img   var   ret   func   int   com   val   UNC   load   

技术图片

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

    var length = 1//链表总长度
    var curr = head
    for curr.Next!=nil{
        length++
        curr = curr.Next
    }

    // 刚好旋转回去
    k = k%length
    if k == 0{
        return head
    }

     // 首先首尾相连成环,找到倒数第k+1个节点,成为新的头节点
    curr.Next = head
    for i:=0;i<length-k;i++{
        curr = curr.Next
    }

   // curr此时指向新的尾节点
    newHead := curr.Next//新的尾节点的下一个节点即为新的头节点
    curr.Next = nil//断尾
    return newHead

}

旋转链表

标签:img   var   ret   func   int   com   val   UNC   load   

原文地址:https://www.cnblogs.com/pangqianjin/p/14641074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!