#includeusing namespace std;// 定义链表节点class ListNode{public: int val; ListNode *next; ListNode(int val) { this->val = val; this->next = NULL; }};class Solution{public: /** 参数head是链表的第一个节点 返回值是链表的头节点 */ ListNode *insertSortList(ListNode *head) { ListNode *dummy = new ListNode(0); //创建一个值为0的节点 ListNode *cur = head; while (cur != NULL) { ListNode *pre = dummy; //当创建的节点的下一节点不为空,且下一节点的值小于当前节点的值 while (pre->next != NULL && pre->next->val < cur->val) { pre = pre->next; //将下一节点的值赋值给当前节点 } ListNode *temp = cur->next; cur->next = pre->next; pre->next = cur; cur = temp; } return dummy->next; }};