翻转链表
来源:互联网 发布:鄂州翔天软件 编辑:程序博客网 时间:2024/06/11 00:26
描述
翻转一个链表
样例
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
思考
- 第一眼看到我是拒绝的,单链表又没有前指针,怎么同时 swap 交换值
- 后来一想,好像也没有要求交换值,赋值效果也是等同的,又是翻转,第一感觉想到栈
代码
// By Lentitude/** * Definition of ListNode * * class ListNode { * public: * int val; * ListNode *next; * * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */class Solution {public: /** * @param head: The first node of linked list. * @return: The new head of reversed linked list. */ ListNode *reverse(ListNode *head) { // write your code here if (head == NULL) return NULL; stack<int> stack; ListNode *pre = head; while (pre != NULL){ // 用栈顺序保存结果 stack.push(pre->val); pre = pre->next; } pre = head; while (pre != NULL){ // 栈逆序赋值 pre->val = stack.top(); stack.pop(); pre = pre->next; } return head; }};
0 0
- 无情链表的创建,,翻转翻转
- 链表翻转程序
- 链表翻转
- 链表翻转
- 链表翻转
- 翻转单向链表
- 翻转链表
- 原地翻转链表
- 链表的翻转
- 链表翻转
- 翻转部分链表
- 链表翻转
- 链表翻转
- c++翻转链表
- 翻转链表
- 链表翻转
- 翻转链表
- 链表翻转
- NYOJ 463
- Android网络访问之HttpURLConnection和HttpClient
- es6入门
- 使用python3操作access数据库(office2016环境)
- Android—启动内置APK和动态发送接收自定义广播
- 翻转链表
- javascript高级程序设计--学习笔记2 (第三章补充和第四章补充)
- Python开源机器学习项目实战
- android软键盘上添加一个按钮
- solr初步
- C++ set
- NYOJ 98
- 使用Python获取并处理IP的类型及格式
- es6入门-对象的扩展