当前位置:   article > 正文

leetcode 24:两两交换链表的节点_给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:

给定 1->2->3->4, 你应该返回 2->1->4->3.
  1. class Solution {
  2. public:
  3. ListNode* swapPairs(ListNode* head) {
  4. if (head == NULL)return NULL;
  5. if(head->next==NULL)return head;
  6. ListNode* p = (ListNode*)malloc(sizeof(ListNode));
  7. ListNode* left = head;
  8. ListNode *result=p;
  9. while (left->next != NULL) {
  10. ListNode* right = left->next;
  11. left->next = right->next;
  12. right->next = left;
  13. p->next = right;
  14. p = left;
  15. left=left->next;
  16. if(left==NULL)break;
  17. }
  18. return result->next;
  19. }
  20. };

执行用时 :4 ms, 在所有 C++ 提交中击败了71.21%的用户

内存消耗 :6.6 MB, 在所有 C++ 提交中击败了100.00%的用户

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/算法构造者/article/detail/61217
推荐阅读
相关标签
  

闽ICP备14008679号