1. 把一个链表,从中间拆开
2. 后面一段颠倒过来
3. 重新交叉成链
ABCDEF
ABC DEF
ABC FED
AFBECD
只要搞成最后这种形式就好了
一个链表, 从中间分成两个子链表,第二个链表逆序。
再把两个链表 并在一起
haode
ListNode* Deal(ListNode* L)
{
}
从中间拆分,需要求链表长度
//逆置链表
ListNode* Reverse(ListNode* L)
{
if(L==NULL) rerurn NULL;
ListNode * pre = NULL;
ListNode* Node = L;
while(Node != NULL)
{
ListNode* pNext = Node->next;
Node->next = pre;
pre = Node;
Node = pNext;
}
return Node;
}
a b c d e a
========================================================================
ListNode* MergeListNode(ListNode* L1,ListNode* L2)
{
if(L1==NULL)
return L2;
if(L2==NULL)
return L1;
ListNode* L = NULL;
if(L1->value < L2->Value)
{
L=L1;
L->next=MergeListNode(L1->next,L2);
}
else
{
L=L2;
L->next=MergeList(L1,L2->next);
}
return L;
}
ok了吧。
https://code.stypi.com/rdog4kqklj93
百度笔试写的两个题,还没写完。后续需要再完善一下。
最新推荐文章于 2024-04-03 22:27:00 发布