已知乙個鍊錶的頭指標為head,將該鍊錶逆序。
#includeusing namespace std;
struct node;
typedef struct node node;
node* reverselinklist(node* head)
p2->next = p1;
head =p2;
return p2;
}int main()
已知兩個鍊錶head1,head2各自有序,合併為乙個新的有序鍊錶
#includeusing namespace std;
struct node;
typedef struct node node;
node* mergelinklist(node* head1,node* head2)
if(head2 ==null)
node* head; //新鍊錶
node* p1; //兩個輔助結點
node* p2;
if(head1->data <= head2->data)
else
node* pcur = head; //輔助結點,用來確定新加入結點
while((p1 != null) && (p2 != null))
else
}if(p1 == null)
else
return head;
}int main()
鍊錶常見問題
思路 快慢指標,慢指標每次移動一步,快指標每次移動兩步,如果存在環,那麼兩個指標一定會在環內相遇 把第二個煉表頭節點的頭接到第乙個鍊錶尾部,然後就轉換成判斷單鏈表是否有環的問題了 當快慢指標相遇後,將乙個指標固定在相遇點,另乙個指標回到鍊錶起始位置,然後兩指標每次都移動乙個node,當兩指標再次相遇...
C 面試常見問題
1.引用和指標的區別 區別 1 引用不能為空,指標可以為空 2 引用必須初始化,指標不需要 3 引用初始化以後不能改變,指標可以改變初始化物件後的值 4 引用訪問物件後是直接訪問,指標訪問物件是間接訪問 5 引用大小是所引用物件的大小,指標大小是指標類本身的大小 6 引用沒有const,指標有con...
C 面試常見問題
智慧型指標的作用是管理乙個指標,因為存在以下這種情況 申請的空間在函式結束時忘記釋放,造成記憶體洩漏。使用智慧型指標可以很大程度上的避免這個問題,因為智慧型指標就是乙個類,當超出了類的作用域是,類會自動呼叫析構函式,析構函式會自動釋放資源。所以智慧型指標的作用原理就是在函式結束時自動釋放記憶體空間,...