RearrangeLinkedList题目描述:给定一个单向链表L的头节点head,单向链表L表示为:L0→L1→...→Ln-1→Ln请重新排列更改为:L0→Ln→L1→Ln-1→L2→Ln-2→...不能简单地更改节点内部的值,而是要实际交换节点。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:链表遍历首先,如果链表为空或者链表只有一个节点,直接返回。否则,先用一个节点栈记录所有节点,并记录链表节点数count;然后,记录插入的顺序,当遍历到奇数位置时,从头节点的方向插入链表;当遍历到偶数位置时,将其从栈中移除的节点(即从尾节点方向)插入到链表中。importcom.kaesar.leetcode.ListNode;importjava.util.Stack;publicclassLeetCode_143{publicstaticvoidreorderList(ListNodehead){if(head==null||head.next==null){返回;}//所有节点Stack
