首页 > 编程语言 >【算法】用Java解出来的算法,移除链表元素,只出现一次的数字

【算法】用Java解出来的算法,移除链表元素,只出现一次的数字

时间:2022-11-17 20:33:56浏览次数:53  
标签:head ListNode temp val int next 链表 算法 移除

(算法题)

1.只出现一次的数字

题目描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:

你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

示例 1:

输入: [2,2,1] 输出: 1

示例 2:

输入: [4,1,2,1,2] 输出: 4

Java代码解决思路参考

class Solution {
    public int singleNumber(int[] nums) {
        int res = 0;
        for (int num : nums) {
            res ^= num;
        }
        return res;
    }
}

2.移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1: image.png

输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]

示例 2:

输入:head = [], val = 1 输出:[]

示例 3:

输入:head = [7,7,7,7], val = 7 输出:[]

提示:

列表中的节点数目在范围 [0, 104] 内 1 <= Node.val <= 50 0 <= val <= 50

Java 代码实现参考

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) {
        val = x;
    }
}
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode top = new ListNode(0);
        top.next = head;
        ListNode pre = top;
        ListNode temp = head;
        while (temp != null) {
            if (temp.val == val)
                pre.next = temp.next;
            else
                pre = temp;
            temp = temp.next;
        }
        return top.next;
    }
}

标签:head,ListNode,temp,val,int,next,链表,算法,移除
From: https://blog.51cto.com/u_15312559/5866142

相关文章

  • 括号匹配文件 栈 算法
    constisValid=function(s){conststack=[];for(leti=0;i<s.length;i++){letc=s[i];switch(c){//左括号入栈,即将与左括号......
  • 分布式ID之雪花算法
     0、背景了解0.1 分布式ID的特点全局唯一性不能出现有重复的ID标识,这是基本要求。递增性确保生成ID对于用户或业务是递增的。高可用性确保任何时候都能生成正确......
  • 力扣 160 相交链表
    题目:给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。题目数据保证整个链式结构中不存在环......
  • 代码随想录day1补充之LeetCode27移除元素相向双指针法&补充题目---LeetCode35搜索插入
    1.LeetCode27移除元素题是晚上刷的,今天看发现第一天的题目只写了快慢指针法(见链接Day1),现补充练习实现相向双指针法。分析:相向双指针法是指使用左右指针,左指针寻找需要移......
  • 代码随想录第三十六天|贪心算法
    今天继续是贪心算法  435.无重叠区间classSolution{publicinteraseOverlapIntervals(int[][]intervals){intn=intervals.length;......
  • 实验四:神经网络算法实验
    |20大数据三班||学号201613334| 【实验目的】理解神经网络原理,掌握神经网络前向推理和后向传播方法;掌握神经网络模型的编程实现方法。【实验内容】1.1981年生......
  • DE 算法的变体python实现
    上演化计算课的时候老师讲了一种DE算法的改进算法CoDE,于是看了下CoDE的论文中的算法步骤:算法中使用的三种交叉策略:根据不同的交叉策略采取不同的变异策略:超参数的三......
  • 如何使用分治算法的思想,分治技巧详解
    分治算法分治算法的思想分治算法和递归的区别使用分治算法需要满足的条件经典题目1、二分搜索2、第一个错误的版本3、快速排序4、归并排序5、数组中的逆序......
  • 算法1,腾讯面试题_等概率问题
    我们都知道java中有个随机函数Math.random(),其实看似平平无奇的一个随机函数,演变出来的面试题随时都可能难到一大片。本人也是最近才开始专心研究算法,下面左几个小测......
  • 每日算法之跳台阶
    JZ69跳台阶描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。数据范围:1\leqn\leq401≤n......