24.两两交换链表中的节点
24.两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
示例:
给定 1->2->3->4, 你应该返回 2->1->4->3.
代码
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* swapPairs(ListNode* head) { ListNode *left, *right, *temp,*end; if(head == NULL || head->next == NULL) { return head; } left = head; right = head->next; head = right; end = NULL; while(left!=NULL&&right!=NULL) { temp = right->next; if(end) end->next = right; end = left; right->next = left; left->next = temp; left = temp; if(left) right = left->next; } return head; } };
posted on 2020-07-26 18:42 Little-Prince 阅读(92) 评论(0) 收藏 举报
浙公网安备 33010602011771号