148. 排序链表
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
进阶:
你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?
示例 1:
输入:head = [4,2,1,3] 输出:[1,2,3,4]
示例 2:
输入:head = [-1,5,3,4,0] 输出:[-1,0,3,4,5]
示例 3:
输入:head = [] 输出:[]
提示: 链表中节点的数目在范围 [0, 5 * 104] 内 -105 <= Node.val <= 105
这个题的问题仍然没有很好的理解递归思路,把递归再想一想
思考:目前只能粗略记录思路
递归最适用于树和链表这种带着指针的,从中间拆出一个节点出来直接就是另一棵树或者另一个完整的链表,所以一棵树左右节点是两棵树,就把问题拆分了,一个链表中间拆一下变成两个链表,问题又拆分了。
递归和循环也就是动态规划是反着来的,如果能通过底层循环做的,一般上层递归也有的做。