题目:给你一个链表的头节点
head
,旋转链表,将链表每个节点向右移动k
个位置。
solution method
单元测试
int main(void){
Node *dummy = new Node;
constexpr std::size_t N { 5u };
int contain[N] { 1, 2, 3, 4, 5};
Node *p {dummy};
for(int i {}; i < ( int )N; (void)++i, (void)(p = p->next))
p->next = new Node{ next : nullptr, tag : contain[i]};
p = dummy->next;
puts("----------before----------");
for(int i {}; i < ( int )N; (void)++i, (void)(p = p->next))
std::cout << p->tag << ' ';
endl(std::cout);
dummy->next = rotate(dummy->next, 3);
p = dummy->next;
puts("----------after-----------");
for(int i {}; i < ( int )N; (void)++i, (void)(p = p->next))
std::cout << p->tag << ' ';
endl(std::cout);
return 0;
}