刪除鍊錶的中間節點和a b處的節點

2021-09-01 09:13:50 字數 1391 閱讀 8870

給定鍊錶的頭節點head,實現刪除鍊錶中間節點的函式和刪除位於a/b處節點的函式。 當有偶數個節點時,刪除兩個中間節點的前乙個,有奇數個節點時,刪除中間節點。

刪除a/b處的節點:鍊錶1->2->3->4->5,假設a/b的值為r,如果r = 0,不刪除任何節點。如果r在區間(0,1/5]上,刪除節點1;依次類推;如果r>1,則不刪除任何節點。

具體題目可參考原書

#include

using

namespace std;

struct node };

node*

removemidnode

(node* head)

prev-

>next = prev-

>next-

>next;

return head;

}node*

removebyration

(node* head,

int a,

int b)

if(n ==1)

head = head-

>next;

if(n >1)

return head;

}node*

createlist

(int

* in,

int len)

p->next =

null

;return head;

}void

printlist

(node* phead)

cout << endl;

}int

main()

;int input2=

;int input3=

;int a =

5, b =6;

node* phead1 =

createlist

(input1,5)

; node* phead2 =

createlist

(input2,4)

; node* phead3 =

createlist

(input3,7)

; node* p1 =

removemidnode

(phead1)

; node* p2 =

removemidnode

(phead2)

; node* p3 =

removebyration

(phead3, a, b)

;printlist

(p1)

;printlist

(p2)

;printlist

(p3)

;getchar()

;return0;

}

刪除鍊錶的中間節點和a b處節點

說明 本文是左程雲老師所著的 程式設計師面試 指南 第二章中 刪除鍊錶的中間節點和a b處節點 中的一道題目。在此感謝左程雲老師。題目 給定鍊錶的頭節點 head,實現刪除鍊錶的中間節點的函式。例如 步刪除任何節點 1 2,刪除節點1 1 2 3,刪除節點2 1 2 3 4,刪除節點2 1 2 3 ...

鍊錶問題 刪除鍊錶的中間節點和a b處的節點

問題描述 給定鍊錶的頭節點head,實現刪除鍊錶的中間節點的方法 若為偶數個 比如1234則刪除節點2 給定鍊錶的頭節點head,實現刪除鍊錶的a b處節點的方法 思路分析 刪除中間節點 1個節點,不刪除 2個節點,刪除節點1 3個節點,刪除節點2 4個節點,刪除節點2 5個節點,刪除節點3 6個節...

鍊錶問題03 刪除鍊錶的中間節點和a b處的節點

題目 給定鍊錶的頭節點head,實現刪除鍊錶的中間節點的函式。例如 鍊錶為空或長度為1,不刪除任何節點 1 2,刪除節點1 1 2 3,刪除節點2 1 2 3 4,刪除節點2 1 2 3 4 5,刪除節點3 高階 給定鍊錶的頭節點head 整數a和b,實現刪除位於a b處節點的函式。例如 鍊錶 1 ...