鍊錶基本操作題

2022-05-01 22:03:20 字數 1736 閱讀 6055

1. 鍊錶反轉,

// 3指標,原地反轉

/*

* * definition for singly-linked list.

* struct listnode

* }; */

class

solution

return

pre;}};

2. 翻轉鍊錶m到n的結點,要求一次遍歷完成(leetcode92)

node* reversebetween(node* head, int m, int

n)

return

h.next;

}

3. 兩個鍊錶相加(leetcode2)

input: (2 -> 4 -> 3) + (5 -> 6 -> 4)

output: 7 -> 0 -> 8

explanation: 342 + 465 = 807.

listnode* addtwonumbers(listnode* l1, listnode*l2) 

return

vhead.next;

}

4. 求煉表中的倒數第k個節點

listnode* getkthfromend(listnode* head, int

k)

return

p1; }

5. 判斷兩個鍊錶是否相交 leetcode160

思路一:最簡單的先遍歷一遍得到lena, lenb,讓長的先走掉差,再 同步走

思路二:先兩者同時走,先到null的去另一條,兩者再走掉差,此時長的也到null了改去另一條,此時剩下的長度相同。

思路三:將其中一條首尾相連,轉化成了找環的入口

//

思路二

listnode *getintersectionnode(listnode *heada, listnode *headb)

return

pa;}

5. 頭插法和輸出

#includeusing

namespace

std;

typedef

struct

node

}node;

//構建鍊錶

//頭插法

node* insert(node* head, int

val)

//遍歷鍊錶

void print(node*head)}//

逆序輸出

void print_r(node*head)

print_r(head->next);

printf(

"%d

", head->val);}//

求倒數第k個節點

void kth_r(node * head, int

k) printf(

"p2: %d\n

", p2->val);

}int a = , n = 5

;int

main()

print_r(head);

printf("\n

");kth_r(head, 2);

return0;

}

資料庫表操作題

4 參見如下表結構 出版社 出版社 char 2 出版社名稱 varchar2 32 圖書 圖書編號 char 8 圖書名稱 varchar2 128 出版社 char 2 作者代號 char 4 圖書簡介 varchar2 128 作者代號 char 4 作者名稱 varchar2 10 性別 c...

二級c 基本操作題小結

經過這幾天對二級c 的分類學習,感覺還是有規律可循的,基於我對基本操作的學習,總結知識點如下 建構函式的特性 建構函式的名必須與定義它的類同名 建構函式沒有返回值。如果在建構函式前加void,int,double等是錯誤的 建構函式被宣告定義為公有函式 建構函式在建立時由系統自動呼叫 析構函式也是類...

字串操作題

請寫乙個函式,實現以下功能 字串 open door 轉換成 opendoor make by id 轉換成 makebyid 下面是我個人的一些方法 a open door b str replace open door open door a 字串替換函式將 替換成 使乙個單詞變成兩個單詞 na...