LeetCode刷題 C 資料結構

2021-10-22 14:53:46 字數 1683 閱讀 6861

定義

// definition for singly-linked list.

struct listnode

listnode

(int x)

:val

(x),

next

(nullptr)

listnode

(int x, listnode *next)

:val

(x),

next

(next)

};

listnode node = listnode();一般以指標定義。

建立簡單鍊錶

// this program illustrates the creation || of linked lists.

#include

using namespace std;

struct listnode

;int

main()

遍歷結點
listnode *ptr = head;

while

(ptr != nullptr)

先把鍊錶指向開頭,然後向後移動直到終結點。

只要有節點的向後移動,在判斷裡一定要加是否為空! 並且空指標是沒有val值的

基本用法

判斷字元是不是數字,大寫,小寫

/* 用ascii碼判斷,比如48-57的ascii碼是0-9數字 */

// if((s[i]>='a' && s[i]<='z') || (s[i]>='a' && s[i]<='z'))

int tmp =

(int

)str[i];if

(tmp >=

48&& tmp <=57)

else

/* 用c++提供的stringstream物件 */

#include

string string

("aabb112");

bool flag1 =

isdigit

(string[6]

);bool flag2 =

isalpha

(string[6]

);bool flag3 =

isupper

(string[6]

);bool flag4 =

islower

(string[6]

);bool flag5 =

isalnum

(string[6]

);

大小寫轉換

#include

char a =

toupper

(string[2]

);char b =

tolower

(string[1]

);

反轉字串

reverse(str.begin(), str.end());

leetcode刷題 資料結構(1) 鍊錶

鍊錶 1.找出兩個鍊錶的交點 第一次可做出,解法可優化 2.鍊錶反轉 遞迴 迭代 兩種方法 3.歸併兩個有序的鍊錶 可做出經典題型,兩種方法需掌握 4.從有序鍊錶中刪除重複節點 第一次可做出ok 5.刪除鍊錶的倒數第 n 個節點 第一次可做出ok 6.交換鍊錶中的相鄰結點 思考後可做出 解法可簡化 ...

資料結構刷題 剪枝

在刷題中會遇到,比如二叉樹問題中會遇到剪枝的問題,我們需要,研究一下什麼是剪枝 剪枝可謂是搜尋的靈魂所在,我們知道搜尋是個愣頭青小伙,一路撞到底可能都撞不到答案,他還可能要撞很多次。所以有什麼方法可以讓他撞的次數少一點呢?我們知道搜尋會形成乙個搜尋樹,這其中有很多的枝杈,但是他們中許多其實是無用或者...

資料結構刷題 陣列

給定乙個矩陣 a,返回 a 的轉置矩陣。先建立乙個與原始矩陣行列數互換的新矩陣 做兩個迴圈巢狀,內迴圈遍歷原始矩陣的行轉列,外矩陣遍歷原始矩陣的列 class solution return v 逐行的細緻解釋 vector 建立了二維陣列,兩個空格可以在c 11標準中可以剔除 a 0 size 獲...