中間節點確定方法

2021-07-27 02:36:16 字數 1204 閱讀 4772

1.在使用merge方法對鍊錶排序,以及判斷list是否是回文的時候,我們都需要確定中間節點,並從中間節點將鍊錶斷開

然後對於sortlist ,將前後鍊錶進行merge

對於回文list,將後一段鍊錶翻轉,並和前一段鍊錶進行逐個比較

具體**如下

palindrome linked list

/**

* definition for singly-linked list.

* public class listnode

* }

*/ public class solution

listnode runode=head;

listnode prenode=null;

listnode result=null;

while(runode!=null)

runode.next=prenode;

prenode=runode;

runode=temp;//next loop

} return result;

} public boolean ispalindrome(listnode head)

listnode temp=slow;

listnode l2=null;

if(fast==null)

else

slow.next=null;

while(l2!=null)

head=head.next;

l2=l2.next;

} return true;

}

}
在這裡面

while(fast!=null&&fast.next!=null)

listnode temp=slow;

listnode l2=null;

if(fast==null)

else

slow.next=null;

對於1->2->3->4

在while迴圈後,slow=3,fast=null。此時後半段應該是3->4

對於1->2->3->4->5

在while迴圈後,slow=3,fast=5。此時後半段應該是4->5

sortlist

**如下:

public class solution

尋找中間節點

題目 尋找鍊錶的中間節點,如果鍊錶個數為奇數 則中間結點就是最中間的結點,如果為偶數,中間節點是中間兩個節點後面的那個結點 遍歷列表計算鍊錶長度 找到鍊錶的中間位置索引 遍歷到鍊錶,至到中間位置,返回中間位置 public listnode middlenode listnode head size...

2 3 刪除中間節點

template typename t void deletemiddlenode singlylinkednode middle singlylinkednode next middle getnext middle setvalue next getvalue middle setnext ne...

leetcode刪除中間節點

實現一種演算法,刪除單向鍊錶中間的某個節點 即不是第乙個或最後乙個節點 假定你只能訪問該節點。輸入 單向鍊錶a b c d e f中的節點c 結果 不返回任何資料,但該鍊錶變為a b d e f address definition for singly linked list.class list...