解题思路
利用插入排序的思维
- 将首个节点作为有序链表;
- 以首个节点作为当前节点,当前节点与下一个节点作比较;
- 若下一个节点比当前节点小,则将此节点从链表中删除放在缓存区,将缓存区中的节点插入到有序链表中;
- 若下一个节点不比当前节点小,则将当前移动往下一个节点挪一位; 如何实现删除某节点,放在缓存区
- 开辟一个临时变量存储该节点;
- 当前节点指向该节点的下一个节点;
如何实现缓存区节点插入有序链表
- 有序节点头结节点出发遍历有序节点;
- 若有序节点的节点大于缓存区节点,则将临时节点指向有序节点的下一个节点,有序节点指向临时节点;
哑节点存在的意义
- 哑节点的下一个节点为头结点,即能实现dummyHead.next为有序链表的数值,而非有序链表的存储结构。
代码实现