一些好玩的东西

递归

1.递归打印数组和链表?

  • 平常我们打印数组和链表都是 迭代 就好了
  • 今天学到一个新思路–>不仅可以轻松正着打印数组和链表 , 还能轻松倒着打印(用的是二叉树的前中后序遍历的思想)

代码实现

public class Main{
	public static void main(String[] args) {
		int[] arr = {1,3,4,5,6};
		traverse(arr, 0);
	}
	
// 核心代码
	public static void traverse(int[] arr,int i) {
		if(i == arr.length) return;
		System.out.println(arr[i]);	//前序位置
		traverse(arr, i+1);
		System.out.println("dao"+arr[i]);	//后序位置
	}
}

  • output :
    在这里插入图片描述

原理讲解

在这里插入图片描述

  • 退出 递归traverse()时, 是退出本层,返回到上一层traverse()---->也就是返回到 第12行 , 而不是第8行

二叉树的 前 中 后 序位置

二叉树的
前序位置 : 就是即将要进入到一个节点的时间点
中序位置 : 就是从左子树切换到右子树的时间点
后序位置 : 就是即将要从一个节点出去的那个时间点

在这里插入图片描述

参考文章

相关推荐

  1. 记录一些容易遗忘东西

    2024-04-07 06:12:02       13 阅读
  2. 关于windows脚本一些东西

    2024-04-07 06:12:02       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-07 06:12:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-07 06:12:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-07 06:12:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-07 06:12:02       20 阅读

热门阅读

  1. spring 和springBoot区别

    2024-04-07 06:12:02       11 阅读
  2. 期权的各种套利分类

    2024-04-07 06:12:02       18 阅读
  3. 效率系列(十) macOS软件管理工具

    2024-04-07 06:12:02       13 阅读
  4. 设计模式:策略模式示例

    2024-04-07 06:12:02       10 阅读
  5. 计算机网络路由的配置

    2024-04-07 06:12:02       16 阅读
  6. C语言预处理基础知识笔记

    2024-04-07 06:12:02       14 阅读
  7. YOLOv5实战记录03 数据集构建

    2024-04-07 06:12:02       14 阅读
  8. go | gin多服务 | goroutine | ReadTimeout&WriteTimeout

    2024-04-07 06:12:02       15 阅读
  9. ffmpeg 从现有视频中截取一段

    2024-04-07 06:12:02       13 阅读
  10. 如何从vue项目界面上看出来node.js版本

    2024-04-07 06:12:02       14 阅读
  11. cycle GAN

    2024-04-07 06:12:02       13 阅读