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( ...
随机推荐
- JS数组push会覆盖前面的数据问题
这是一个作用域和重新赋值的问题. 检查声明数组所在位置,特别在是多层嵌套中,检查是否在内层循环结束时 跳到外层循环就重新将 数组 赋值为空.
- Jquery day02
jquery day01回顾 语法: $("选择器") , $(dom对象) , $("<div>") 选择器: 基本:#id.ele ...
- SDH误码仪MP1570A的自动化
MP1570A是日本安立公司的用于SDH测试的误码仪. 1.MP1570A的自动化测试场景和原理 任意测试PC--(telnet)-->测试PC(Tcl Interrupt)-->SIG_ ...
- XidianOJ 1154 Nhywieza 的串
题目描述 输入 输出 对于每组数据输出 1 行,表示最少的操作次数. --正文 找到连续的0一起变就好 #include <iostream> #include <cstring&g ...
- 提升linux下tcp服务器并发连接数限制
1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统 ...
- XproerIM V2开源,基于XproerUI引擎构架
资源下载:XproerIM源代码(访问密码:2e47),imServer(访问密码 364c), 技术交流群:6259765 技术支持:3040217208 咨询邮箱:2190615607@qq.co ...
- diamond专题(一)– 简介和快速使用
(转自 http://blog.csdn.net/zh_winer/article/details/50395024) 一.概况 diamond是淘宝内部使用的一个管理持久配置的系统,它的特点是简单 ...
- linux 学习2 文件处理命令
____命令格式与目录处理命令 ____目录处理命令 ____文件处理命令 ____链接命令 ls list 菜单 命令 [-选项][参数] 选项:调整功能,多个选项可以写在一起,不分顺序. 简化选项 ...
- JS里面利用random()实现随机颜色更换
首先你需要一个div <div id="box"></div> 然后给这个div加入CSS属性 #box{width:500px;height:500px; ...
- .NET 配置项扩展
using System; using System.Configuration; namespace ConsoleApplication3 { /* web.config 或 app.config ...