Skip to content

Latest commit

 

History

History
91 lines (64 loc) · 2.06 KB

[0708] 循环有序列表的插入.md

File metadata and controls

91 lines (64 loc) · 2.06 KB
title tags categories author comments updated permalink mathjax top description date
[0708] 循环有序列表的插入
leetcode
leetcode
张学志
true
false
false
false
...
2019-12-31 16:11:48 -0800

题目描述

给定循环升序列表中的一个点,写一个函数向这个列表中插入一个新元素,使这个列表仍然是循环升序的。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。

如果有多个满足条件的插入位置,你可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。

如果列表为空(给定的节点是 null),你需要创建一个循环有序列表并返回这个点。否则。请返回原先给定的节点。

下面的例子可以帮你更好的理解这个问题:

 



在上图中,有一个包含三个元素的循环有序列表,你获得值为 3 的节点的指针,我们需要向表中插入元素 2。

 


 

新插入的节点应该在 1 和 3 之间,插入之后,整个列表如上图所示,最后返回节点 3。

Related Topics
  • 链表
  • 题目代码

    /*
    // Definition for a Node.
    class Node {
    public:
        int val;
        Node* next;
    
        Node() {}
    
        Node(int _val) {
            val = _val;
            next = NULL;
        }
    
        Node(int _val, Node* _next) {
            val = _val;
            next = _next;
        }
    };
    */
    class Solution {
    public:
        Node* insert(Node* head, int insertVal) {
            
        }
    };

    题目解析

    方法一

    方法二

    方法三