题目描述:
代码如下:
List Merge( List L1, List L2 )
{
List p1 = L1 -> Next, p2 = L2 -> Next;
List L3 = ( List )malloc( sizeof( struct Node ) );
L3 -> Next = NULL;
List p = L3;
while( p1 && p2 ){
if( p1 -> Data <= p2 -> Data ){
List s = ( List )malloc( sizeof( struct Node ) );
s -> Data = p1 -> Data;
s -> Next = NULL;
p -> Next = s;
p = s;
p1 = p1 -> Next;
}
else{
List s = ( List )malloc( sizeof( struct Node ) );
s -> Data = p2 -> Data;
s -> Next = NULL;
p -> Next = s;
p = s;
p2 = p2 -> Next;
}
}
if( p1 )
while( p1 ){
List s = ( List )malloc( sizeof( struct Node ) );
s -> Data = p1 -> Data;
s -> Next = NULL;
p -> Next = s;
p = s;
p1 = p1 -> Next;
}
if( p2 )
while( p2 ){
List s = ( List )malloc( sizeof( struct Node ) );
s -> Data = p2 -> Data;
s -> Next = NULL;
p -> Next = s;
p = s;
p2 = p2 -> Next;
}
L1->Next = NULL;
L2->Next = NULL;
return L3;
}