zoukankan      html  css  js  c++  java
  • 删除链表中重复的节点

    因为这个程序快累死老子了,细节处理很麻烦
    package Solutions;

    import java.util.ArrayList;

    /**
    * Created by hu on 2015/12/12.
    */
    /*
    * 删除链表中重复的结点
    *在一个排序的链表中,存在重复的结点,
    * 请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
    * 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
    *
    * */
    public class solution32 {
    public static ListNode deleteDuplication(ListNode pHead)
    {
    //如果pHead为空或者只有一个节点的时候,那么就返回头结点
    if (pHead==null||pHead.next==null){
    return pHead;
    }
    //p是遍历链表的节点
    ListNode p=pHead.next;
    ListNode pre=pHead;
    ListNode q=p.next;
    while (q!=null){
    if(p.val==q.val){
    q=q.next;
    }else {
    if(p.next==q){
    pre=p;
    p=q;
    q=q.next;
    }else if (p.next!=q){
    if(pre.val==p.val){
    return deleteDuplication(q);
    }
    pre.next=q;
    p=q;
    q=q.next;
    }
    }
    }
    if(p.next!=null){
    if (pHead.val==p.val){
    return null;
    }else {
    pre.next=null;
    }
    }
    if(pHead.val==pHead.next.val){
    pHead=pHead.next.next;
    }
    return pHead;
    }
    public static void main(String[] args){
    ListNode node1=new ListNode(1);
    ListNode node2=new ListNode(1);
    ListNode node3=new ListNode(2);
    ListNode node4=new ListNode(3);
    ListNode node5=new ListNode(3);
    ListNode node6=new ListNode(4);
    ListNode node7=new ListNode(5);
    ListNode node8=new ListNode(5);
    node1.next=node2;
    node2.next=node3;
    node3.next=node4;
    node4.next=node5;
    node5.next=node6;
    node6.next=node7;
    node7.next=node8;
    //ListNode res=node1;
    ListNode res=deleteDuplication(node1);
    while (res!=null){
    System.out.print(res.val+" ");
    res=res.next;
    }
    }
    }
  • 相关阅读:
    Asp.Net+Oracle+BootStrap+Jquery
    UML类图几种关系的总结
    PHP对象在内存堆栈中的分配
    php sprintf 详解
    微信错误代码45047:客服消息只能发送20条/个用户
    php利用array_search与array_column实现二维数组查找
    mvc 详解
    php中++i 与 i++ 的区分详解
    Git 别名多个命令 超实用
    php 对象继承
  • 原文地址:https://www.cnblogs.com/hujingwei/p/5041086.html
Copyright © 2011-2022 走看看