#include bool insert_last(list *ls, data data)
tmp->next = node;
return true;
}void display(list *ls)
printf ("\n");
}list *createlist()//建立鍊錶
ls->head->next = null; // 空鍊錶
return ls;
}int overlap(list *ls1 , list *ls2)//找兩個鍊錶重合的點
tmp2 = tmp;
pos2 = 1;
pos1++;
} return pos1;
}int find_k(list *ls , int k)//找乙個不知長度的鍊錶的倒數第k個點
while(tmp1->next)
return count;
}int main()
printf ("建立成功\n");
int i;
for (i = 0; i < 10; i++)
display(ls1);
printf("----------------\n");
insert_last(ls2, 3);
insert_last(ls2, 4);
insert_last(ls2, 7);
insert_last(ls2, 11);
insert_last(ls2, 12);
display(ls2);
printf("----------------\n");
int a;
a = overlap(ls1 , ls2);
printf("在鍊錶ls1的第 %d 個位置重合\n", a);
a = find_k(ls1 , 2);
printf("倒數第k個數是 %d \n", a);
return 0;
}
鍊錶部分翻轉
題目描述 給定乙個鍊錶,翻轉該鍊錶從m到n的位置。要求直接翻轉而非申請新空間。如 給定1 2 3 4 5,m 2,n 4,返回1 4 3 2 5。假定給出的引數滿足 1 m n 鍊錶長度。時間複雜度為o n 以下為 include include typedef struct snode snode...
鍊錶部分反轉
反轉鍊錶的一部分,從第m個到第n個節點反轉,m n都小於鍊錶長度。public void reverselist list l,int m,int n 定義乙個新的臨時頭指標 node tmp node 0 tmp.next l 移動頭指標到第 m 1 個節點 node pre tmp for in...
鍊錶之反轉部分單向鍊錶
package com.chenyu.zuo.linkedlist import com.chenyu.zuo.linkedlist.removebyratio.node 題目 給定乙個單向鍊錶的頭結點head,以及兩個整數from和to 在單項鍊表上把第from個節點和第to個節點這一部分進行反轉...