LeetCode 24.Swap Nodes in Pairs
来源:互联网 发布:java接口特点是什么 编辑:程序博客网 时间:2024/06/14 07:33
Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given 1->2->3->4, you should return the list as 2->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.
这道题比较简单,交换链表每相邻的两个结点。不允许直接修改结点数据域。
要注意的是链表为空、结点总数为奇数的情况。
待辅助头结点dummy的写法:
class Solution {public: ListNode* swapPairs(ListNode* head) { //ListNode **pp = &head; //ListNode *dummy = new ListNode(0), *p = dummy; //dummy->next = head; //ListNode *p1 = p->next, *p2 = NULL; //if (p1) p2 = p1->next; //while (p1&&p2) { // p->next = p2; // p1->next = p2->next; // p2->next = p1; // p = p1; // p1 = p->next; // if (p1)p2 = p1->next; //} //return dummy->next; ListNode *dummy = new ListNode(0), *p = dummy; dummy->next = head; ListNode *p1, *p2; while ((p1 = p->next) && (p2 = p1->next)) { p->next = p2; p1->next = p2->next; p2->next = p1; p = p1; } return dummy->next; }};
使用二级指针写法
class Solution {public: ListNode* swapPairs(ListNode* head) { ListNode **pp = &head; ListNode *p1, *p2; while ((p1 = *pp) && (p2 = p1->next)) { *pp = p2; p1->next = p2->next; p2->next = p1; pp = &(p1->next); } return head; }};
阅读全文
0 0
- [LeetCode]24.Swap Nodes in Pairs
- 24. Swap Nodes in Pairs Leetcode Python
- 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
- 24. Swap Nodes in Pairs LeetCode
- 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 24. Swap Nodes in Pairs
- LeetCode-24.Swap Nodes in Pairs
- LeetCode 24. Swap Nodes in Pairs
- LeetCode 21.Merge Two Sorted Lists
- 【我的Java笔记】增强for循环 & ArrayList集合储存自定义对象并遍历的五种方法
- ubuntu 安装repo
- OpenCV自学笔记32. ubuntu 安装python3+opencv3的过程记录
- 11.14第十节课
- LeetCode 24.Swap Nodes in Pairs
- 欢迎使用CSDN-markdown编辑器
- Android Camera 系统架构源码分析(2)---->Camera的startPreview和setPreviewCallback
- eslint 规则
- 关于php命名空间的一些小细节
- 心得
- ubuntu 下面 Pycharm 遇到ReservedCodeCacheSize 等内存问题
- jquery防止按钮重复点击
- LeetCode 61. Rotate List