快递系统专注快递企业网站开发,dw制作网页的代码,成都专业网站制作多少钱,一级域名好还是二级域名好重排链表 题解1 线性表 给定一个单链表 L 的头节点 head #xff0c;单链表 L 表示为#xff1a; L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为#xff1a;
L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值#xff0c;而是需要实际… 重排链表 题解1 线性表 给定一个单链表 L 的头节点 head 单链表 L 表示为 L0 → L1 → … → Ln - 1 → Ln请将其重新排列后变为
L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …不能只是单纯的改变节点内部的值而是需要实际的进行节点交换。 提示
链表的长度范围为 [ 1 , 5 ∗ 1 0 4 ] [1, 5 * 10^4] [1,5∗104]1 node.val 1000
题解1 线性表
/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:void reorderList(ListNode* head) {if(! head || ! head-next) return;ListNode *p1(head);vectorListNode* tmpA;while(p1){tmpA.push_back(p1);p1 p1-next;}int i 0, j tmpA.size()-1;while(i j){tmpA[i]-next tmpA[j];if(i j) break;tmpA[j--]-next tmpA[i];}tmpA[i]-next nullptr;}
};