美文网首页
单向链表反向输出,不用中间变量操作.

单向链表反向输出,不用中间变量操作.

作者: cmeizu | 来源:发表于2020-12-04 17:06 被阅读0次

讲一下基本思想:
单向链表要想反向输出,而不借助临时变量,那就是栈这个数据结构->递归一下就出现了.

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Objects;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
class Node {
    private Integer data;
    private Node next;
}
/**
 * @author 陈英俊
 * @date 2020/11/30 17:46
 */
public class SingleLinkedListDemo {
    public static void main(String[] args) {
        Node head = new Node(0, null);
        for (int i = 0; i < 10; i++) {
            initLinkedList(head, new Node(i, null));
        }
        Node tmp = head;
        while (tmp != null) {
            System.out.print(tmp.getData() + "->");
            tmp = tmp.getNext();
        }
        System.out.println();
        //单链表反向输出
        printLinkedList(head);
    }
    /**
     * 单向链表反向输出
     *
     * @param head 头结点
     */
    private static void printLinkedList(Node head) {
        if (!Objects.isNull(head.getNext())) {
            printLinkedList(head.getNext());
        }
        System.out.print(head.getData() + "->");
        return;
    }

     /**
     * 链表新增结点(尾插法)
     *
     * @param head 头结点
     * @param add 新增结点
     */
    private static void initLinkedList(Node head,Node add) {
        Node tmp = head.getNext();
        Node var = head;
        while (tmp != null) {
            var = tmp;
            tmp = tmp.getNext();
        }
        var.setNext(add);
    }
}
  • 输出结果:
0->1->2->3->4->5->6->7->8->9->10->
10->9->8->7->6->5->4->3->2->1->0->
Process finished with exit code 0

相关文章

  • 单向链表反向输出,不用中间变量操作.

    讲一下基本思想:单向链表要想反向输出,而不借助临时变量,那就是栈这个数据结构->递归一下就出现了. 输出结果:

  • 链表相关

    总结一下链表相关的操作 单链表节点的定义 实现单向链表的反向 删除单链表的所有节点

  • 8.单向链表SingleLinkList

    目录:1.单向链表的定义2.单向链表的图解3.单向链表定义操作4.单向链表的实现 1.单向链表的定义 2.单向链表...

  • 10.单向循环链表SingleCycleLinkList

    目录:1.单向循环链表的定义2.单向循环链表的图解3.单向循环链表定义操作4.单向循环链表的实现 1.单向循环链表...

  • 求单向链表的中间结点

    求单向链表的中间结点 需求 非空的单向链表,返回其中间节点。如果有两个中间结点,返回第二个。链表大小控制在1~10...

  • 链表的实用操作函数

    单向链表的操作 /*链表节点声明*/ typedef struct listnode *listpointer; ...

  • 打卡8.2

    题目:反向输出一个链表。 程序: 输出样例:

  • 链表反转

    概述 链表反转是非常经典的面试题,要实现此功能,需先实现链表的数据结构。 链表类 获得单向链表方法 输出单向链表方...

  • 链表

    单向链表 包含,创建,析构,指定位置插入,指定位置删除,反向链表,打印 双向链表 包含,创建,析构,指定位置后插入...

  • 备战“金九银十”跳槽季:阿里、百度、美团等技术面试题及答案

    阿里篇 如何实现一个高效的单向链表逆序输出? 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)...

网友评论

      本文标题:单向链表反向输出,不用中间变量操作.

      本文链接:https://www.haomeiwen.com/subject/hxeiwktx.html