赞
踩
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4
, 你应该返回 2->1->4->3
.
- class Solution {
- public:
- ListNode* swapPairs(ListNode* head) {
- if (head == NULL)return NULL;
- if(head->next==NULL)return head;
- ListNode* p = (ListNode*)malloc(sizeof(ListNode));
- ListNode* left = head;
- ListNode *result=p;
- while (left->next != NULL) {
- ListNode* right = left->next;
- left->next = right->next;
- right->next = left;
- p->next = right;
- p = left;
- left=left->next;
- if(left==NULL)break;
-
- }
- return result->next;
- }
- };
执行用时 :4 ms, 在所有 C++ 提交中击败了71.21%的用户
内存消耗 :6.6 MB, 在所有 C++ 提交中击败了100.00%的用户
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。