[JS]删除链表的重复结点2

来源:互联网 发布:金山数据恢复手机版 编辑:程序博客网 时间:2024/04/30 10:11

测试代码

    //构造链表    var head = new sNode(0);    var nums = [2,2,1,1,3,3,3,1,2,2,3,3];    console.log(head);    for(var i=0;i<nums.length;i++){        var p = new sNode(nums[i]);        p.pNext = head.pNext;        head.pNext = p;    }    print(head);    //删除重复出现的结点    var pPre = head;    var pCur = head.pNext;    var pNext = null;    while(pCur){        pNext = pCur.pNext;        if(pNext && pCur.value == pNext.value){            pPre.pNext = pNext;            pCur = pNext;        }else{            pPre = pCur;            pCur = pNext;        }    }    print(head);

辅助函数

//定义sNode结点function sNode(v){    this.value = v;    this.pNext = null;}//遍历链表数据function print(head){    write("输出链表数据...");    writeEnd();    var p = head.pNext;    while(p!=null){        write(p.value);        p = p.pNext;    }    writeEnd();    write("end 输出链表数据...");    writeEnd();}//产生整型随机数function randInt(max){    return parseInt(Math.random()*max)+1;}//对默认的输出进行封装为write函数function write(str){    console.log(str);    document.write(str+" ");}//输出换行function writeEnd(){    document.write("<br>");}

测试结果

这里写图片描述

0 0
原创粉丝点击