20240530 Finished
This commit is contained in:
parent
7f261075d1
commit
b40af22073
58
LeetCodeSharp/Problems/Solution61.cs
Normal file
58
LeetCodeSharp/Problems/Solution61.cs
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
// [61] Rotate List
|
||||||
|
|
||||||
|
using LeetCodeSharp.Utils;
|
||||||
|
|
||||||
|
namespace LeetCodeSharp.Problems61
|
||||||
|
{
|
||||||
|
// Submission codes start here
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Definition for singly-linked list.
|
||||||
|
* public class ListNode {
|
||||||
|
* public int val;
|
||||||
|
* public ListNode next;
|
||||||
|
* public ListNode(int val=0, ListNode next=null) {
|
||||||
|
* this.val = val;
|
||||||
|
* this.next = next;
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
*/
|
||||||
|
public class Solution
|
||||||
|
{
|
||||||
|
public ListNode RotateRight(ListNode head, int k)
|
||||||
|
{
|
||||||
|
// 排除链表为空/只有一个节点的情况
|
||||||
|
if (head?.next == null)
|
||||||
|
{
|
||||||
|
return head;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 首先将链表连接为环形链表
|
||||||
|
var node = head;
|
||||||
|
var length = 1;
|
||||||
|
|
||||||
|
while (node.next != null)
|
||||||
|
{
|
||||||
|
node = node.next;
|
||||||
|
length += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
node.next = head;
|
||||||
|
|
||||||
|
var precursor = node;
|
||||||
|
var newHead = head;
|
||||||
|
|
||||||
|
for (var i = 0; i < length - k % length; i++)
|
||||||
|
{
|
||||||
|
newHead = newHead.next;
|
||||||
|
precursor = precursor.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 断开环形链表
|
||||||
|
precursor.next = null;
|
||||||
|
return newHead;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Submission codes end here
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user