leetcode-024 Swap Nodes in Pairs
2015-08-18 21:30
751 查看
不说废话,先贴上代码
本体设置了dummy结点,因为有了dummy之后,所有的节点都变成拥有前置节点的节点了。所以就不用担心处理头节点这个特殊情况了。
初始状态:
经过第一轮循环后,
实际上节点的顺序是:已经交换了头两个结点的顺序了
根据for循环的第三个条件
prev = cur, cur = cur->next, next = cur? cur->next:nullptr
以此类推
#include "stdafx.h" #include <iostream> #include <vector> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution_024_SwapNodesinPairs { public: ListNode* swapPairs(ListNode* head) { if (head == nullptr || head->next == nullptr) { return head; } ListNode dummy(-1); dummy.next = head; for (ListNode *prev = &dummy, *cur = prev->next, *next = cur->next; next; prev = cur, cur = cur->next, next = cur? cur->next:nullptr) { prev->next = next; cur->next = next->next; next->next = cur; } return head->next; } };分析过程:
本体设置了dummy结点,因为有了dummy之后,所有的节点都变成拥有前置节点的节点了。所以就不用担心处理头节点这个特殊情况了。
初始状态:
经过第一轮循环后,
实际上节点的顺序是:已经交换了头两个结点的顺序了
根据for循环的第三个条件
prev = cur, cur = cur->next, next = cur? cur->next:nullptr
以此类推
相关文章推荐
- Count Complete Tree Nodes
- GDataXMLNode
- [Leetcode] Count Complete Tree Nodes
- LightOJ 1094 - Farthest Nodes in a Tree
- nodejs中如何创建和加载模块
- lightoj1094 - Farthest Nodes in a Tree
- HTML DOM nodeType 属性
- [LeetCode 237] Delete Node in a linked list
- nodejs 获取文件的编码方式
- 《Node.js开发指南》知识整理
- NodeJS简介
- Node.js的优缺点
- windows系统 Node.js(安装-启动-测试)
- 认识node.js:express(一)
- MonoDevelop中文乱码
- 在max下完全卸载nodejs
- Farthest Nodes in a Tree ---LightOj1094(树的直径)
- hadoop2.0的datanode数据存储文件夹策略的多个副本
- Lightoj 1094 - Farthest Nodes in a Tree 【树的直径裸题】
- 玩转Node.js - 05. LS 过滤器