较:链表删除重复元素

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

解:

这道题首先要注意,重复元素一个不留,且开头元素可能重复,所以如果我们直接在原链表上操作会比较麻烦。这里采用选择非重复节点构建新链表的方式进行删除。如果重复,直接划过,不重复就插入到新链表中。

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {
    public ListNode deleteDuplication(ListNode pHead)
    {
        if(pHead==null || pHead.next==null){
            return pHead;
        }
        ListNode newHead=null;
        ListNode newTail=null;
        boolean it=false;
        while(pHead!=null){
            if(pHead.next==null || pHead.val!=pHead.next.val){
                if(it){
                    //已经初始化
                    newTail.next=pHead;
                    newTail=pHead;
                    pHead=pHead.next;
                    newTail.next=null;
                }else{
                    //未初始化
                    newHead=pHead;
                    newTail=pHead;
                    it=true;
                    pHead=pHead.next;
                    newTail.next=null;
                }
            }else{
                while(pHead.next!=null && pHead.val==pHead.next.val){
                    pHead=pHead.next;
                }
                //注意这里记得多划一次,否则重复元素的最后一个未被划过
                pHead=pHead.next;
            }
        }
        return newHead;
    }
}

 

Ubuntu 22.04安装Vivado之前,您需要先安装一些必要的库。您可以使用以下命令来安装这些库: sudo apt-get install libtinfo5 sudo apt install libncurses5 libncurses5-dev sudo apt-get install u-boot-tools 接下来,您可以按照以下步骤来安装Vivado: 1. 下载Vivado 2018.3的安装包。 2. 打开终端,进入到您下载的Vivado安装包所在的目录。 3. 运行以下命令来解压安装包: tar -xvf Xilinx_Vivado_SDK_2018.3_1207_2324.tar.gz 4. 进入解压后的目录,并运行以下命令来启动安装程序: ./xsetup 5. 根据安装程序的指示,选择安装目录和组件。 6.安装过程中,您可能需要输入您的许可证信息和注册码。 7. 完成安装后,您可以在安装目录中找到Vivado的可执行文件。 请注意,以上步骤是基于Vivado 2018.3版本的安装。如果您下载的是其他版本的Vivado,请相应地调整步骤中的安装包名称和文件路径。 引用:OpenWiFi的默认编译仿真工具是Xilinx Vivado 2018.3。 引用:记录下Ubuntu22.04系统下安装Vivado22.2、Vitis HLS、Vitis的过程。 引用:解决方法 安装缺失的库 sudo apt-get install libtinfo5 2 Vitis 22.2 安装 。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu22.04安装Xilinix Vivado 2018.3](https://blog.csdn.net/hitanvil1/article/details/127219300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [手把手你在Ubuntu22.04安装 Vivado、HLS、Vitis 2022.2版本](https://blog.csdn.net/qq_44447544/article/details/128205473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值