多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > leetcode Rotate List

leetcode Rotate List

來源:程序員人生   發布時間:2015-03-19 08:44:42 閱讀次數:3091次

1. 題目描寫

Given a list, rotate the list to the right by k places, where k is non-negative.

For example:
Given 1->2->3->4->5->NULL and k = 2,
return 4->5->1->2->3->NULL.


2.解決方案1


class Solution { public: ListNode *rotateRight(ListNode *head, int k) { if(head == NULL || k <= 0) return head; //get length ListNode *temp = head; int node_count = 0; while(temp != NULL) { node_count++; temp = temp->next; } if(k > node_count) k = k%node_count; if(k == node_count || k == 0) return head; //first node move k step ListNode *first = head; while( k > 0) { first = first->next; k--; } //when first node move to last, the second node move (length - k) step ListNode *second = head; while(first->next != NULL) { first = first->next; second = second->next; } ListNode *newhead = second->next; //be a circle  first->next = head; //broken circle second->next = NULL; return newhead; } };

思路:使用了快慢指針的技能。但由于k的值有可能大于全部的長度,所以還要先求出list的長度。先用快的指針走k步,然后再把它走到尾部,這個時候慢指針就走了length - k 的步數。再頭尾相連組成環,再斷環,返回新的頭部指針。


3.解決方案2


class Solution { public: ListNode* getLastNode(ListNode *head, int& len){ ListNode* node = head; len = 1; if(head == NULL){ len = 0; return NULL; } while( node->next != NULL){ node = node->next; len++; } return node; } ListNode *rotateRight(ListNode *head, int k) { if(head == NULL){ return head; } int len; ListNode* lastNode = getLastNode(head, len); lastNode->next = head; k %= len; int step = len - k; while(step>0){ lastNode = lastNode->next; step--; } head = lastNode->next; lastNode->next = NULL; return head; } };

思路:先直接1個1個走到最后1個指針,然后連接成環,然后再行走lenght - k 的步數。再斷環。

http://www.waitingfy.com/archives/1579
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲天堂第一页 | www.狠狠操| 亚洲最新视频在线观看 | 国产免费一级高清淫曰本片 | jlzzjlzz在线播放中国视频 | 中文字幕第8页 | 精品国产福利第一区二区三区 | 岛国片欧美一级毛片 | 黄色免费在线网址 | 五月天视频网站 | 黄色欧美一级片 | 精品91一区二区三区 | 国产全黄一级毛片 | 亚洲精品影院久久久久久 | 久久久精品久久久久久久久久久 | 久久欧美精品欧美九久欧美 | 18视频免费网站 | 国产精品视频第一区二区 | 福利视频欧美一区二区三区 | 日本视频中文字幕 | 久久精品一区二区三区日韩 | 国产视频www | 免费视频不卡 | 亚洲人成伊人成综合网久久久 | 国产精品亚洲综合网站 | 天天在线天天综合网色 | 成人精品亚洲人成在线 | 亚洲成人免费在线视频 | 国产精品亚洲精品一区二区三区 | 久久久久99这里有精品10 | 成人精品一区二区三区校园激情 | 欧美一级精品高清在线观看 | 中文字幕23页 | 午夜视频在线观看网站 | 国模一区二区三区视频一 | 午夜精品久久久久久久第一页 | 亚洲精品无码不卡 | 国产精品久久久久久久成人午夜 | 国内视频一区二区三区 | 国产亚洲精品久久77777 | 午夜影院免费在线观看 |