您的位置:首页 > 健康 > 养生 > 算法通关:017_1:二叉树及三种顺序的递归遍历

算法通关:017_1:二叉树及三种顺序的递归遍历

2025/5/8 1:52:23 来源:https://blog.csdn.net/m0_75257168/article/details/140906846  浏览:    关键词:算法通关:017_1:二叉树及三种顺序的递归遍历

文章目录

  • 题目
  • 思路
  • 代码
  • 运行结果

题目

二叉树及三种顺序的递归遍历

思路

在这里插入图片描述

代码

/*** @Author: ggdpzhk* @CreateTime: 2024-08-04** 二叉树及三种顺序的递归遍历* LeetCode 144. 二叉树的前序遍历* LeetCode 94. 二叉树的中序遍历* LeetCode 145. 二叉树的后序遍历* LeetCode 102. 二叉树的层序遍历*/
public class _017_Tree {public static void main(String[] args) {TreeNode head = new TreeNode(1);head.left = new TreeNode(2);head.right = new TreeNode(3);head.left.left = new TreeNode(4);head.left.right = new TreeNode(5);head.right.left = new TreeNode(6);head.right.right = new TreeNode(7);System.out.println("先序遍历递归版");preOrder(head);System.out.println();System.out.println("中序遍历递归版");inOrder(head);System.out.println();System.out.println("后序遍历递归版");postOrder(head);System.out.println();}public static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}//先序打印所有节点 递归版public static void preOrder(TreeNode head) {if (head == null) {return;}System.out.print(head.val + " ");//先遍历我自己preOrder(head.left);//再遍历左子树preOrder(head.right);//再遍历右子树}//中序打印所有节点,递归版public static void inOrder(TreeNode head) {if (head == null) {return;}inOrder(head.left);System.out.print(head.val+" ");//左树结束,回到我,打印我inOrder(head.right);}//后序打印所有节点,递归版public static void postOrder(TreeNode head) {if(head == null){return;}postOrder(head.left);postOrder(head.right);System.out.print(head.val+" ");//左树右树遍历结束,回到我,打印我}
}

运行结果

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com