題目1:給定鏈表的頭節(jié)點(diǎn)head,實(shí)現(xiàn)刪除鏈表的中間節(jié)點(diǎn)的函數(shù)
光澤ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!如果鏈表是 1——2——3—— 4,刪除2節(jié)點(diǎn)
如果是1——2——3——4——5,刪除3節(jié)點(diǎn)
思路:
快慢指針,讓pre指針指向頭節(jié)點(diǎn),cur指針指向第三個(gè)節(jié)點(diǎn):
例如 1 2 3 4 5 6
pre是1 ,cur是3,當(dāng)cur后面還有兩個(gè)節(jié)點(diǎn)的時(shí)候,pre走一步,cur走兩步。走完之后,pre是2,cur是5。然后pre就是要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)。
代碼實(shí)現(xiàn):
public static Node removeMidNode(Node head){
//如果鏈表為空 或者長(zhǎng)度為1 直接返回
if (head == null || head.next == null) {
return head;
}
//如果鏈表長(zhǎng)度為2 ,刪除頭節(jié)點(diǎn)
if (head.next.next == null) {
return head.next;
}
//第一個(gè)節(jié)點(diǎn) 和 第三個(gè)節(jié)點(diǎn)
Node pre = head;
Node cur = head.next.next;
//快慢指針
// 1 2 3 4 5 6 ,pre是1 cur是3
while(cur.next != null && cur.next.next != null) {
pre = pre.next;
cur = cur.next.next;
}
pre.next = pre.next.next;
return head;
}
題目2:給定鏈表頭節(jié)點(diǎn)head,整數(shù)a,b,刪除位于a/b處節(jié)點(diǎn)的函數(shù)
思路:
鏈表長(zhǎng)度為n,刪除a/b處的節(jié)點(diǎn),也就是 (a*n)/ b 向上取整的節(jié)點(diǎn)。
確定了要?jiǎng)h除的節(jié)點(diǎn)位置n之后,分兩種情況,一種是n==1,一種是n>1
n>1時(shí)候,讓cur回到頭節(jié)點(diǎn),n--,n減到值為1的時(shí)候,cur就走到了要?jiǎng)h除節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)。
public static Node removeABNode(Node head, int a , int b){
if (a< 1 || a >b) {
return head;
}
int n = 0;
Node cur = head;
//獲取鏈表長(zhǎng)度n
while (cur != null) {
cur = cur.next;
n++;
}
n = (int)Math.ceil(((double)(a * n)) / (double)b);
//n==1時(shí)刪除頭節(jié)點(diǎn)
if (n == 1) {
head = head.next;
}
//找到n節(jié)點(diǎn)前一個(gè)節(jié)點(diǎn) 鏈表是 1 2 3 4 5 6 7
//比如現(xiàn)在n是 4 那么要找到3節(jié)點(diǎn) ,讓cur回到頭節(jié)點(diǎn),n--,n==1的時(shí)候,cur就走到了3節(jié)點(diǎn)
if (n >1) {
cur = head;
while (--n != 1) {
cur = cur.next;
}
cur.next = cur.next.next;
}
return head;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
本文標(biāo)題:刪除鏈表的中間節(jié)點(diǎn)和a/b處的節(jié)點(diǎn)-創(chuàng)新互聯(lián)
URL分享:http://jinyejixie.com/article48/ccpjep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、動(dòng)態(tài)網(wǎng)站、建站公司、商城網(wǎng)站、企業(yè)網(wǎng)站制作、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容