給定鍊錶的頭節點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 ...