部分鍊錶題

2021-09-02 22:32:59 字數 1023 閱讀 9254

#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個節點這一部分進行反轉...