在链表中插入一个节点。
样例
样例 1:
输入:head = 1->4->6->8->null, val = 5
输出:1->4->5->6->8->null
样例 2:
输入:head = 1->null, val = 2
输出:1->2->null
/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The head of linked list.
* @param val: An integer.
* @return: The head of new linked list.
*/
ListNode * insertNode(ListNode * head, int val)
{
ListNode * ret = head;
ListNode * pre = head;
ListNode * tmp = new ListNode(val);
if(head == NULL)
return tmp;
if(val < head->val)
{
tmp->next = head;
return tmp;
}
while(head)
{
if(head->next != NULL)
{
if(head->val <= val && head->next->val >= val)
break;
}
else
{
head->next = tmp;
return ret;
}
pre = head;
head = head->next;
}
tmp->next = head->next;
head->next = tmp;
return ret;
}
};