首页 > 试题广场 >

无环单链表插值

[编程题]无环单链表插值
  • 热度指数:1958 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

有一个有序数组A和一个整数val,请你用A构造一个结点值有序的无环单链表,并对其插入一个点值为val的点,并且保证这个无环单链表依然有序。

给定包含链表的所有元素的值(从头结点开始)的数组A,同时给定val,请构造出这个无环单链表,并返回插入该val值后的头结点。

数据范围:
0 < A.size() <= 1000
0 <= A中的元素值 <= 1000
0 < val <= 1000

例如当数组A为[1,3,4,5,7],val为2时,插入val值后的链表变为{1,2,3,4,5,7},如下图所示:

示例1

输入

[1,3,4,5,7],2

输出

{1,2,3,4,5,7}

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
/**
function ListNode(x) {
  this.val = x;
  this.next = null;
}
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param A int整型一维数组
 * @param val int整型
 * @return ListNode类
 */
function insert(A, val) {
  A.push(val);
  A.sort(function (a, b) {
    return a - b;
  });
  let dummy = new ListNode();
  let temp = dummy;
  for (let i = 0; i < A.length; i++) {
    let newNode = new ListNode(A[i]);
    temp.next = newNode;
    temp = temp.next;
  }
  return dummy.next;
}
module.exports = {
  insert: insert,
};

发表于 2022-09-21 21:58:48 回复(0)