zoukankan      html  css  js  c++  java
  • LintCode 练习题


    /**
    * 给定一个链表,旋转链表,将链表每个节点向右移动 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
    */

    /**
    * Definition for singly-linked list.
    * public class ListNode {
    * int val;
    * ListNode next;
    * ListNode(int x) { val = x; }
    * }
    */
    class Solution {
    public ListNode rotateRight(ListNode head, int k) {
    if (head==null)
    return head;

    ListNode pBack = head;
    int len = 1;//链表的长度
    //求出链表的长度,pBack 指向最后一个节点
    while (pBack.next !=null){
    pBack = pBack.next;
    len++;
    }


    pBack.next = head;//链表连接起来
    k %= len; //
    ListNode cur = head;
    int cnt =1;
    while (cnt <len-k){
    cur =cur.next;
    cnt++;
    }
    ListNode ret = cur.next;
    cur.next =null;
    return ret;
    }
    }

  • 相关阅读:
    sprin AOP
    springDI注解
    Spring学习
    cookie、session、token三者之间的关系
    解决报错:Cannot find module 'webpack-cli/bin/config-yargs'
    Vue全家桶-前端工程化
    Vue全家桶-前端路由
    Vue
    Git
    Ajax
  • 原文地址:https://www.cnblogs.com/gylhaut/p/10255286.html
Copyright © 2011-2022 走看看