Reverse链表 非递归实现
#include<iostream>
struct node{
int payload;
node* next;
};
void bianli(node* head){
node* iterator = head;
while(iterator){
std::cout << iterator->payload<<" ";
iterator = iterator->next;
}
std::cout<<" "<<std::endl;
}
node* whilefunc(node* head){
if(head==nullptr|| head->next==nullptr)
return head;
node* p = head->next;
node* p_previous = head;
p_previous->next = nullptr;
while(p!=nullptr){
node* p_next = p->next;
p->next = p_previous;
p_previous = p;
p = p_next;
}
return p_previous;
}
int main(){
node* head = nullptr;
for(int i=;i<;i++){
node* new_node = new node;
new_node->payload = i*;
new_node->next=head;
head = new_node;
}
head = whilefunc(head);
bianli(head);
system("pause");
return ;
}
Reverse链表 非递归实现的更多相关文章
- C语言递归,非递归实现翻转链表
翻转链表作为,链表的常用操作,也是面试常遇到的. 分析非递归分析: 非递归用的小技巧比较多,很容易出错. 递归分析比较简单,在代码里面 代码: #include<stdio.h> #inc ...
- java:合并两个排序的链表(递归+非递归)
//采用不带头结点的链表 非递归实现 public static ListNode merge(ListNode list1,ListNode list2){ if(list1==null) retu ...
- 19.递归法和非递归法反转链表[ReverseLinkedList]
[题目] 输入一个链表的头结点,反转该链表,并返回反转后链表的头结点. [非递归] C++ Code 12345678910111213141516 listnode *Reverse_Ite ...
- Reverse Linked List 递归非递归实现
单链表反转--递归非递归实现 Java接口: ListNode reverseList(ListNode head) 非递归的实现 有2种,参考 头结点插入法 就地反转 递归的实现 1) Divide ...
- 单链表反转(递归和非递归) (Java)
链表定义 class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 非递归实现很简单,只需要遍历一遍链表,在遍历过 ...
- LeetCode 链表2_27+二叉树的遍历(递归与非递归)
---恢复内容开始--- 19. 删除链表的倒数第N个节点 实现原理:设置两个指针p,q,初始时先让p走n步,之后p与q一起走,当p走到结尾的时候,删除p.next即可. public ListNod ...
- 合并两个排序的链表递归和非递归C++实现
题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,要求合成后的链表满足单调不减规则. 1.分析 已知输入的两个链表递增有序,要使输出的链表依然递增有序,可以依次从输入的两个链表中挑选最小的 ...
- 【Weiss】【第03章】练习3.11:比较单链表递归与非递归查找元素
[练习3.11] 编写查找一个单链表特定元素的程序.分别用递归和非递归实现,并比较它们的运行时间. 链表必须达到多大才能使得使用递归的程序崩溃? Answer: 实现都是比较容易的,但是实际上查找链表 ...
- Java ---- 遍历链表(递归与非递归实现)
package test; //前序遍历的递归实现与非递归实现 import java.util.Stack; public class Test { public static void main( ...
随机推荐
- 浅谈数位DP
在了解数位dp之前,先来看一个问题: 例1.求a~b中不包含49的数的个数. 0 < a.b < 2*10^9 注意到n的数据范围非常大,暴力求解是不可能的,考虑dp,如果直接记录下数字, ...
- sql中limit使用方法
此处以mysql为例,但是我相信物以变通在oracle上也一定适用 下面是几种limit的方法:原则看看下面几个例子应该就懂了 在数据库中很多地方都会用到,比如当你数据库查询记录有几万.几十万时使用l ...
- Jquery ajax请求
$.ajax({ type: "POST", url: renderUrl, data: { openId: this.openId, }, success: function(d ...
- tomcat虚拟目录映射网络共享目录
<Host name="localhost" debug="0" appBase="webapps" unpackWARs=" ...
- python包下载地址
https://pypi.python.org/pypi http://www.lfd.uci.edu/~gohlke/pythonlibs/ 当在线安装安装不了时,需要将安装包下载到本地,进行本地p ...
- Spark学习笔记之SparkRDD
Spark学习笔记之SparkRDD 一. 基本概念 RDD(resilient distributed datasets)弹性分布式数据集. 来自于两方面 ① 内存集合和外部存储系统 ② ...
- ubuntu客户端使用RDP协议连接windows服务器
如果服务器是linux或unix,可以使用ssh远程连接服务器.也有服务器是windows的,通常使用RDP协议进行连接. 1 环境 客户端:ubuntu14.04 LST 服务器:windows ...
- TStringHelper的相关知识、Helper相关细节
- 关于mysql数据库字符集优先级问题
mysql数据库可以分别设置数据库字符集.表字符集和表字段字符集. 1.数据库字符集 < 表字符集 < 表字段(列)字符集. 例如数据库字符集为gbk -- GBK Simplified ...
- Java:多态(向上转型)
先来看一段代码: class BaseClass{ public int book = 6; public void base(){ System. ...