- 相關(guān)推薦
鏈表面試題-一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;
(1)已知鏈表的頭結(jié)點(diǎn)head,寫一個(gè)函數(shù)把這個(gè)鏈表逆序 ( Intel)
Node * ReverseList(Node *head) //鏈表逆序
{
if ( head == NULL || head->next == NULL )
return head;
Node *p1 = head ;
Node *p2 = p1->next ;
Node *p3 = p2->next ;
p1->next = NULL ;
while ( p3 != NULL )
{
p2->next = p1 ;
p1 = p2 ;
p2 = p3 ;
p3 = p3->next ;
}
p2->next = p1 ;
head = p2 ;
return head ;
}
(2)已知兩個(gè)鏈表head1 和head2 各自有序,請(qǐng)把它們合并成一個(gè)鏈表依然有序,鏈表面試題-一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)
,資料共享平臺(tái)
《鏈表面試題-一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)》(http://m.oriental01.com)。(保留所有結(jié)點(diǎn),即便大小相同)
Node * Merge(Node *head1 , Node *head2)
{
if ( head1 == NULL)
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
Node *p1 = NULL;
Node *p2 = NULL;
if ( head1->data < head2->data )
{
head = head1 ;
p1 = head1->next;
p2 = head2 ;
}
else
{
head = head2 ;
p2 = head2->next ;
p1 = head1 ;
}
Node *pcurrent = head ;
while ( p1 != NULL && p2 != NULL)
{
if ( p1->data <= p2->data )
{
pcurrent->next = p1 ;
【鏈表面試題-一個(gè)鏈表的結(jié)點(diǎn)結(jié)構(gòu)】相關(guān)文章:
求職動(dòng)機(jī)面試題07-30
有趣而刁鉆的面試題10-22
20個(gè)經(jīng)典面試題04-12
寶潔英語面試題03-18
銷售行業(yè)面試題07-26
面試題:講解實(shí)習(xí)經(jīng)歷09-19
面試題:談?wù)勀愕娜秉c(diǎn)10-07
銀行面試題目及答案09-19
面試題:團(tuán)隊(duì)智力型01-16
上海奧美面試題目09-22