leetcode---swap-nodes-in-pairs---链表
2017-10-30 20:11
357 查看
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given1->2->3->4, you should return the list as2->1->4->3.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
For example,
Given1->2->3->4, you should return the list as2->1->4->3.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
/** * 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) { if(!head) return NULL; ListNode *p = head; ListNode *pre = head; bool first = true; while(p && p->next) { ListNode *next = p->next; // next = 2 ; next = 4 ListNode *next2 = next->next; // next2 = 3 ; next2 = 5 next->next = p; // 2->1 ; 4->3 p->next = next2; // 1->4 ; 3->NULL if(first) { head = next; first = false; } else pre->next = next; // ; 1->4 pre = p; // pre = 1 ; pre = 3 p = next2; // p = 3 ; p = NULL } return head; } };
相关文章推荐
- leetcode之24. Swap Nodes in Pairs(C++实现&链表实现和整体测试)
- Swap Nodes in Pairs 链表两两交换节点@LeetCode
- 【leetcode】24. Swap Nodes in Pairs - 成对交换链表元素
- [leetcode] 24 Swap Nodes in Pairs(交换链表相邻结点)
- 【leetcode】【单链表】【24】Swap Nodes in Pairs
- (Java) LeetCode 24. Swap Nodes in Pairs —— 两两交换链表中的节点
- 【leetcode】【单链表】【24】Swap Nodes in Pairs
- Leetcode:Swap Nodes in Pairs 单链表相邻两节点逆置
- [leetcode 24]Swap Nodes in Pairs-----成对翻转链表中的节点
- LeetCode_链表操作1—Swap Nodes in Pairs
- [LeetCode][链表]Swap Nodes in Pairs
- LeetCode_链表操作1—Swap Nodes in Pairs
- leetcode Swap Nodes in Pairs 链表
- leetcode 24. Swap Nodes in Pairs(链表)
- leetCode 24. Swap Nodes in Pairs 链表
- [Leetcode 24 链表]Swap Nodes in Pairs
- LeetCode - 24 - Swap Nodes in Pairs(交换链表结点)
- [leetcode] 【链表】24. Swap Nodes in Pairs
- LeetCode-24 Swap Nodes in Pairs(链表中按要求交换节点)
- LeetCode Swap Nodes in Pairs交换链表中的两个节点