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...