#include "List.h"
using namespace std;
void mergeLR(Node* left, Node* right)
{
Node* next = nullptr;
while(left->next != nullptr)
{
next = right->next;
right->next = left->next;
left->next = right;
left = right->next;
right = next;
}
left->next = right;
}
void relocate(Node* head)
{
if(head == nullptr || head->next == nullptr)
return;
Node* mid = head;
Node* right = mid->next;
while(right->next && right->next->next)
{
mid = mid->next;
right = right->next->next;
}
right = mid->next;
mid->next = nullptr;
mergeLR(head, right);
}
int main()
{
Node* pNode0 = new Node(0);
Node* pNode1 = new Node(1, pNode0);
Node* pNode2 = new Node(2, pNode1);
Node* pNode3 = new Node(2, pNode2);
Node* pNode4 = new Node(1, pNode3);
Node* pNode5 = new Node(0, pNode4);
relocate(pNode5);
Print(pNode5);
}
按左右半区的方式重新组合单链表
猜你喜欢
转载自blog.csdn.net/wzc2608/article/details/80691417
今日推荐
周排行