C语言开发中数据结构循环链表的实现技巧

来源:爱站网时间:2021-03-15编辑:网友分享
旋转链表是由很多节点结合的,而节点链接成链表的方法是怎样的呢?下面爱站技术频道小编给大家介绍C语言开发中数据结构循环链表的实现技巧,需要的朋友一起参考看看吧!

旋转链表是由很多节点结合的,而节点链接成链表的方法是怎样的呢?下面爱站技术频道小编给大家介绍C语言开发中数据结构循环链表的实现技巧,需要的朋友一起参考看看吧!

C语言数据结构旋转链表的实现

实例:

给出链表1->2->3->4->5->null和k=2

返回4->5->1->2->3->null

分析

感觉很直观,直接把分割点找出来就行,记得k可能大于len,要取模

代码:

/** 
 * Definition for singly-linked list. 
 * struct ListNode { 
 *   int val; 
 *   ListNode *next; 
 *   ListNode(int x) : val(x), next(NULL) {} 
 * }; 
 */ 
class Solution { 
public: 
  /** 
   * @param head: the list 
   * @param k: rotate to the right k places 
   * @return: the list after rotation 
   */ 
  ListNode *rotateRight(ListNode *head, int k) { 
    // write your code here 
    if(head==NULL) 
      return head; 
    int len = 0; 
    ListNode*temp = head; 
    while(temp) 
    { 
      len++; 
      temp = temp->next; 
    } 
    k%=len; 
    if(k==0) 
      return head; 
    k = len-k; 
    temp = head; 
    while(k>1) 
    { 
      temp = temp->next; 
      k--; 
    } 
    ListNode*newStart = temp->next; 
    temp->next = NULL; 
    temp = newStart; 
    while(temp->next) 
      temp = temp->next; 
    temp->next = head; 
    return newStart; 
  } 
}; 

以上就是爱站技术频道小编为大家介绍的C语言开发中数据结构循环链表的实现技巧,大家在操作的时候一定要理性操作哦。

上一篇:如何在C/C++中获取当前系统时间

下一篇:PHP开发中的MySQL扩展

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载