Swap Nodes in Pairs 解法
来源:互联网 发布:重庆时时彩报号软件 编辑:程序博客网 时间:2024/05/22 17:32
Swap Nodes in Pairs 解法
第 12 周题目
难度:Media
LeetCode题号:24
题目
Description:
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.
思考
整体的思想是维持三个指针变量
current, next, pre,分别表示当前位置,下一个位置和上一个位置
每次循环,current指向next的下一个,next指向current,同时pre指向next(原本pre指向current)
剩下的就是处理开头和结尾的
因为存在pre,所以开始的两个节点调换不写在循环里
最后当next为null时退出循环
代码
/** * 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 == NULL || head->next == NULL) { return head; } ListNode * current,* Next, * pre, * result; current = head; Next = current->next; result = Next; current->next = Next->next; Next->next = current; pre = current; if (current->next != NULL) { current = current->next; } Next = current->next; while (Next != NULL) { current->next = Next->next; Next->next = current; pre->next = Next; pre = current; if (current->next != NULL) { current = current->next; } Next = current->next; } return result; }};
阅读全文
0 0
- Swap Nodes in Pairs 解法
- Swap Nodes in Pairs问题及解法
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes In Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- 数据结构课程总结
- Insertion Sort
- 数据结构课程 -- 学期总结
- JSTL标签的简单使用
- EditText指定列数
- Swap Nodes in Pairs 解法
- android开发查看keyStore别名、MD5信息等方法
- 前端的浅谈
- 一种简单的设计方法,为产品设计增加近距离检测和环境光感应---凯利讯半导体
- Android 仿火萤视频桌面 神奇的LiveWallPaper
- 人工智能如何更好的辅助医生?Petuum研究自动生成医疗图像报告
- select在ios中选项空白
- 使用java修改图片DPI
- LeNet-5 论文及原理分析(笨鸟角度)