一些好玩的东西-递归

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行

二叉树的 前 中 后 序位置

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

在这里插入图片描述

上一篇:【Pt】马灯贴图绘制过程 05-铁丝与渲染出图-步骤


下一篇:VTK中polydata的属性数据结构表示和用法