python删除链表中重复的节点_Java编程删除链表中重复的节点问题解决思路及源码分享...
一. 題目
在一個排序的鏈表中,存在重復的結點,請刪除該鏈表中重復的結點,重復的結點不保留,返回鏈表頭指針。
二. 例子
輸入鏈表:1->2->3->3->4->4->5
處理后為:1->2->5
三. 思路
個人感覺這題關鍵是注意指針的指向,可以定義一個first對象(值為-1,主要用于返回操作后的鏈表),first.next指向head,定義一個last同樣指向first(主要用于操作記錄要刪除節點的前一個節點),定義一個p指向head,指向當前節點。
操作流程:
①先判斷當前p指向與p.next指向是否為空,為空則進入⑤,不為空進入②;
②判斷當前節點p的值與與p.next的值是否相等,如果相等,進入③,不相等,進入④
③記錄p.val的值為val,循環判斷val是否與當前p指向相等,相等的話p = p.next,last.next指向p;
④last指向p,p指向p.next;
⑤返回first.next;
四. 程序源碼
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
ListNode first = new ListNode(-1);
first.next = pHead;
ListNode last = first;
ListNode p = pHead;
while(p!=null&&p.next!=null){
if(p.val==p.next.val){
int val = p.val;
while(p!=null&&p.val==val){
p = p.next;
last.next = p;
}
}else{
last = p;
p = p.next;
}
}
return first.next;
}
}
總結
以上就是本文關于Java編程刪除鏈表中重復的節點問題解決思路及源碼分享的全部內容,感興趣的朋友可以參閱:Java編程實現從尾到頭打印鏈表代碼實例、Spring boot jpa 刪除數據和事務管理的問題實例詳解、MySQL刪除表數據的方法以及本站其他相關專題,希望對大家有所幫助。如有不足之處,歡迎留言指出!感謝朋友們的閱讀。
總結
以上是生活随笔為你收集整理的python删除链表中重复的节点_Java编程删除链表中重复的节点问题解决思路及源码分享...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想thinkpadt550官网上市时间
- 下一篇: 体验联想个人云存储A1联想个人云储存A1