Reorder List
题目描述:
给定一个链表的头节点,然后将原来链表顺序为L1->L2->L3…..->Ln-1->Ln的链表重现排序为L1->Ln->L2->Ln-1….
例子:
具体描述可以看LeetCode143
解题思路:
本题的思路很简单,主要是过程中涉及到链表的多种操作需要认真学习。首先是我们找到链表的中间节点主要利用的是快慢指针的方式,这个过程中需要注意在while部分我们需要考虑fast和fast->next;然后找到后半段链表后,将其逆序;这个过程中主要是定义pre=NULL的方式能帮助代码简洁一些;最后是两个链表的重新连接;主要是保存当前指针的下一个节点用于遍历即可。
代码如下:
|
|