链表反转,C++实现
1 // To Compile and Run: g++ invert_list.cc -std=c++11 -Wall -O3 && ./a.out
2
3
4 #include <iostream>
5 #include <vector>
6
7
8 class ListNode {
9 public:
10 int data;
11 ListNode *pNext;
12
13 ListNode()
14 : data(0)
15 , pNext(nullptr) {}
16 ListNode(int i)
17 : data(i)
18 , pNext(nullptr) {}
19 };
20
21
22 ListNode *InvertList(ListNode *_pList) {
23 ListNode *_pPrevious = nullptr;
24 while (_pList != nullptr) {
25 ListNode *tmpPtrNext = _pList->pNext;
26
27 _pList->pNext = _pPrevious;
28
29 _pPrevious = _pList;
30 _pList = tmpPtrNext;
31 }
32
33 return _pPrevious;
34 }
35
36 int main(int argc, char const *argv[]) {
37 const std::vector<int> arr {
38 1, 2, 3
39 };
40 ListNode * const ROOT_PTR = new ListNode();
41 ListNode *pList = ROOT_PTR;
42 for (int i: arr) {
43 pList->pNext = new ListNode(i);
44 pList = pList->pNext;
45 }
46 for (ListNode *p = ROOT_PTR->pNext; p != nullptr; p = p->pNext) {
47 std::cout << p->data << "\t";
48 }
49 std::cout << "\n";
50
51 pList = ROOT_PTR->pNext;
52 ListNode *pNewRoot = InvertList(pList);
53 for (ListNode *p = pNewRoot; p != nullptr; p = p->pNext) {
54 std::cout << p->data << "\t";
55 }
56 std::cout << "\n";
57
58 return 0;
59 }
链表反转,C++实现的更多相关文章
- 链表反转leetcode206
最近准备结束自己的科研生涯,准备要开始找工作了,准备在LEETCODE刷刷题...刷的前40题全部用python刷的,各种调包速度奇快,后被师哥告知这样没意义,于是准备开始回归C++,Python用的 ...
- 链表反转 (Multi-method)
链表反转是链表相关问题最基础的知识,做完LeetCode中LinkedList后才会有这种体会,因为ACM算法中不会涉及这一部分.解决这一问题有多种方法,在面试中面试官通常也会要求写出多种.包括sta ...
- java实现单链表反转
一.简介 经查阅,主要有两种方法实现链表反转,递归反转法和遍历反转法: 递归: 在反转当前结点之前先反转其后边的结点,即.从尾结点开始逆向反转各个节点的指针域指向: 遍历:从前往后反转各个结点的指针域 ...
- C++ 单向链表反转
单向链表反转,一道常见的面试题,动手实现下. #include "stdafx.h" #include <stdlib.h> struct Node{ int data ...
- c语言:链表排序, 链表反转
下面将实现链表排序的排序和遍历显示功能: 所定义的链表结构如下: head -> p1 -> p2 ->p3 ->....->pn; head的本身不作为数据节点,hea ...
- 【Java数据结构】Java数据结构之链表反转
我们都知道用C可以很简单的实现单链表反转,今天来学习下,在Java中如何实现链表反转. 思路很简单,定义一个类,这个类分成2块,一块是表示自身的标志,另外一个存储指向下一个元素的引用.通过互换相邻两个 ...
- [LeetCode] 链表反转相关题目
暂时接触到LeetCode上与链表反转相关的题目一共有3道,在这篇博文里面总结一下.首先要讲一下我一开始思考的误区:链表的反转,不是改变节点的位置,而是改变每一个节点next指针的指向. 下面直接看看 ...
- 单链表反转(Singly Linked Lists in Java)
单链表反转(Singly Linked Lists in Java) 博客分类: 数据结构及算法 package dsa.linkedlist; public class Node<E> ...
- 【easy】206. Reverse Linked List 链表反转
链表反转,一发成功~ /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; ...
- java实现单链表反转(倒置)
据说单链表反转问题面试中经常问,而链表这个东西相对于数组的确稍微难想象,因此今天纪录一下单链表反转的代码. 1,先定义一个节点类. 1 public class Node { 2 int index; ...
随机推荐
- jquery链式调用原理
jquery选择器$('selector')返回的不是数组,而是一个被封装好的jQuery对象,查询到的每一个节点,都被以下标为属性的方式添加到jQuery对象,jQuery对象上的方法包含对象本身的 ...
- 高级测试工程师&资深测试工程师应实现的价值
一 技能 自动化: 接口自动化 web ui 自动化(selenium) 移动端自动化 二 项目支撑----项目集,不是单个项目(大小项目) 1.具体功能web 2.小程序 3.移动端 三 项目职责 ...
- uniapp 中获取微信小程序的原生导航栏高度
const custom = wx.getMenuButtonBoundingClientRect() // console.log(custom) that.yuansheng= custom.he ...
- 自考网络原理:安全套接字层SSL
对ssl/tls的理解 前:SSL; 后:TLS: 以下是B站上的up主讲的,非常的深入浅出,讲的很好.感谢技术蛋老师. https://www.bilibili.com/video/BV1KY411 ...
- (K8s学习笔记四)常用命令实例
1.显示Pod的更多信息 kubectl get pod <pod-name> -o wide kubectl get pods -show-all # 查看已经停止的Pod 2.以yam ...
- 后台运行python服务 起停脚本
启动脚本 start.sh #!/bin/bash nohup <command> > /dev/null 2>&1 & echo $! > comman ...
- Maven使用相关
#Maven使用 [1] [2] mvn archetype:generate -DgroupId=com.companyname.bank -DartifactId=consumerBanking ...
- 100多个常用 API 接口整理大全
聚合数据提供30大类,160种以上基础数据API服务,国内最大的基础数据API服务,下面就罗列一些免费的各类API接口. 手机号码归属地API接口: https://www.juhe.cn/docs/ ...
- 如何把百度地图左边的搜索列表导出成excel里?
有很多人问我,怎么样能够快速的把BAIDU地图左边的搜索列表里的商家地图,电话,导出到EXCEL里. 我就开发了一个小软件,专门为快速的实现导出数据到EXCEL. 为了使用方便,已经将全国的所又省份, ...
- C# 开源NuGet插件
ExcelDataReader 开源免费,Excel读取插件 GitHub - ExcelDataReader/ExcelDataReader: Lightweight and fast libra ...