1. #include<iostream>
  2.  
  3. struct node{
  4. int payload;
  5. node* next;
  6. };
  7. void bianli(node* head){
  8. node* iterator = head;
  9. while(iterator){
  10. std::cout << iterator->payload<<" ";
  11. iterator = iterator->next;
  12. }
  13. std::cout<<" "<<std::endl;
  14. }
  15.  
  16. node* whilefunc(node* head){
  17. if(head==nullptr|| head->next==nullptr)
  18. return head;
  19. node* p = head->next;
  20. node* p_previous = head;
  21. p_previous->next = nullptr;
  22.  
  23. while(p!=nullptr){
  24. node* p_next = p->next;
  25. p->next = p_previous;
  26. p_previous = p;
  27. p = p_next;
  28. }
  29.  
  30. return p_previous;
  31. }
  32.  
  33. int main(){
  34. node* head = nullptr;
  35. for(int i=;i<;i++){
  36. node* new_node = new node;
  37. new_node->payload = i*;
  38. new_node->next=head;
  39. head = new_node;
  40. }
  41. head = whilefunc(head);
  42. bianli(head);
  43.  
  44. system("pause");
  45. return ;
  46. }

Reverse链表 非递归实现的更多相关文章

  1. C语言递归,非递归实现翻转链表

    翻转链表作为,链表的常用操作,也是面试常遇到的. 分析非递归分析: 非递归用的小技巧比较多,很容易出错. 递归分析比较简单,在代码里面 代码: #include<stdio.h> #inc ...

  2. java:合并两个排序的链表(递归+非递归)

    //采用不带头结点的链表 非递归实现 public static ListNode merge(ListNode list1,ListNode list2){ if(list1==null) retu ...

  3. 19.递归法和非递归法反转链表[ReverseLinkedList]

    [题目] 输入一个链表的头结点,反转该链表,并返回反转后链表的头结点. [非递归]  C++ Code  12345678910111213141516   listnode *Reverse_Ite ...

  4. Reverse Linked List 递归非递归实现

    单链表反转--递归非递归实现 Java接口: ListNode reverseList(ListNode head) 非递归的实现 有2种,参考 头结点插入法 就地反转 递归的实现 1) Divide ...

  5. 单链表反转(递归和非递归) (Java)

    链表定义 class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } 非递归实现很简单,只需要遍历一遍链表,在遍历过 ...

  6. LeetCode 链表2_27+二叉树的遍历(递归与非递归)

    ---恢复内容开始--- 19. 删除链表的倒数第N个节点 实现原理:设置两个指针p,q,初始时先让p走n步,之后p与q一起走,当p走到结尾的时候,删除p.next即可. public ListNod ...

  7. 合并两个排序的链表递归和非递归C++实现

    题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,要求合成后的链表满足单调不减规则. 1.分析 已知输入的两个链表递增有序,要使输出的链表依然递增有序,可以依次从输入的两个链表中挑选最小的 ...

  8. 【Weiss】【第03章】练习3.11:比较单链表递归与非递归查找元素

    [练习3.11] 编写查找一个单链表特定元素的程序.分别用递归和非递归实现,并比较它们的运行时间. 链表必须达到多大才能使得使用递归的程序崩溃? Answer: 实现都是比较容易的,但是实际上查找链表 ...

  9. Java ---- 遍历链表(递归与非递归实现)

    package test; //前序遍历的递归实现与非递归实现 import java.util.Stack; public class Test { public static void main( ...

随机推荐

  1. Python3.x和Python2.x的区别

    1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...

  2. Access denied for user 'root'@'localhost' (using password:YES)

    版权所有,未经博主允许不得转载. 今天发现服务器mysql连接不上,报 can't connect to mysql server on 'root'@'ip' (61) 照例ssh到服务器,发现my ...

  3. java守护线程的理解

    package daemonThread; /*setDaemon(true)方法将线程设置为守护线程,线程的Daemon默认值为false * 只要当前JVM实例中存在任何一个非守护线程没有结束,守 ...

  4. sql2000添加表注释,列注释 及修改 删除 注释

    --创建表--create table 表(a1 varchar(10),a2 char(2)) --为表添加描述信息EXECUTE sp_addextendedproperty 'MS_Descri ...

  5. C# 时间函数相减

    1:第一种方式: "; "; DateTime firstDateTemp = DateTime.ParseExact(firsttime, "yyyyMMddHHmms ...

  6. Get Intensity along a line based on OpenCV

    The interpolate function is used to get intensity of a point which is not on exactly a pixel. The co ...

  7. 博客CSS

    <p style="background: #CFE0F8; padding: 5px;">理解Code First及其约定和配置</p> <p id ...

  8. C#中有哪些类型的数组

    一维数组(Single-Dimensional)多维数组(Multidimensional)交错数组(Jagged arrays):交错数组是元素为数组的数组.交错数组元素的维度和大小可以不同.交错数 ...

  9. android 开发 程序中下载安装APK文件 问题汇总 解析程序包时出现问题

    1 若把APK文件保存到应用程序的files目录下,则一定注意保存时使用 FileOutputStream os = openFileOutput(fileName, MODE_WORLD_READA ...

  10. ES5 的 forEach, map, filter, some, every 方法

    1:  forEacharray.forEach(callback,[ thisObject]) // 遍历数组里面的所有数字// item 是值, i 是序号, array 是整个数组 [1, 2 ...