LeetCode二叉树中序遍历
LeetCode二叉树中序遍历
1.1 题目描述
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
1.2 示例
示例:
输入:root = [1,null,2,3]
输出:[1,3,2]
2.1 解题
2.1.1 解题方法:递归
二叉树的中序遍历方法:按照“左(子树)→中→右”顺序遍,可以使用递归方式进行遍历
Java版解题
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();inorder(root, res);return res;}void inorder(TreeNode root, List<Integer> list) {if (root == null) {return;}inorder(root.left, list); //逐层遍历当前节点所有左子树list.add(root.val); //将节点值按顺序存入集合中inorder(root.right, list);}
}
解题结果
扩展
前序遍历(中→左→右)
class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();inorder(root, res);return res;}void inorder(TreeNode root, List<Integer> list) {if (root == null) {return;}list.add(root.val); // 注意这一句inorder(root.left, list);inorder(root.right, list);}
}
后序遍历(左→右→中)
class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();postorder(root, res);return res;}void postorder(TreeNode root, List<Integer> list) {if (root == null) {return;}postorder(root.left, list);postorder(root.right, list);list.add(root.val); // 注意这一句}
}
LeetCode二叉树中序遍历相关推荐
- 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...
- leetcode算法题--二叉树中序遍历迭代法
原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...
- 详细图解二叉树中序遍历(非递归C++)LeetCode94
详细图解二叉树中序遍历(非递归) 二叉树中序递归含义 LeetCode题目94 详细图解 源代码 运行结果 二叉树中序递归含义 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.若二叉树为空则结 ...
- C++ morris inorder二叉树中序遍历(附完整源码)
C++ morris inorder二叉树中序遍历 morris inorder二叉树中序遍历算法的完整源码(定义,实现,main函数测试) morris inorder二叉树中序遍历算法的完整源码( ...
- 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为
初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:() 8 3 2 5 1 6 4 7 3 2 8 5 1 4 6 7 3 8 2 5 ...
- 基本题型记录-二叉树中序遍历
由于本人基础较差,所以针对部分题型做一个记录,以免自己忘记 1.二叉树中序遍历 这个遍历方法可以搜一下博客上很多讲解,这里主要是记录一下代码实现,以下面的二叉树为例子 结果应该是 2.迭代法 2.1 ...
- 华为机试:二叉树中序遍历
题目来源 华为机试:二叉树中序遍历 题目描述 题目解析 思路 class Solution{struct TreeNode{char ch;TreeNode *left;TreeNode *right ...
- 不用栈的二叉树中序遍历
不用栈的二叉树中序遍历 // 中序遍历非栈非递归 void inOrder_noRecursion_noStack(TreeNode* r, char* pattern) {TreeNode* cur ...
- 二叉树中序遍历线索化 C++ 递归实现
二叉树中序遍历线索化 中序遍历有一个特点,只要不是叶子节点,遍历的时候左孩子一定是当前节点的上一个访问节点:右孩子一定是当前节点的下一个访问节点. 如果把叶子节点的左右孩子都利用起来,把空的左孩子做成 ...
- 二叉树中序遍历线索化
#include<stdio.h>typedef struct ThreadNode{int data;struct ThreadNode *lchild,*rchild;int ltag ...
最新文章
- 用Vue来实现图片上传多种方式
- Django + Uwsgi + Nginx 的生产环境部署
- Linux centosVMware Tomcat介绍、安装jdk、安装Tomcat
- 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
- html本地载入缓存文件,Flutter中如何加载并预览本地的html文件的方法
- linux HA工作模型详解
- Ubuntu18.04及以上设备安装CUDA,CUDNN,Anaconda亲测方法
- 300G的python资料等着你
- 2021数据安全与个人信息保护技术白皮书
- 浏览器渲染原理及性能优化
- 谋定而后动,理想不相信热血
- 唯品会导航栏简单制作
- Spring 项目中applicationContext.xml模板
- 用计算机怎么管理小米路由器,怎样用手机设定小米路由器
- 富不过三代已成过去,解答为什么越有钱的越有钱?
- 上海居住证 居转户条件
- CF940E Cashback 题解
- 东华OJ 基础 49修理牛棚
- 【openCV边缘检测】用传统方法实现边缘检测(二)色彩空间
- 各公司软件技术人员的工资
热门文章
- 数据库原理(上)--收集得空看
- 《朗读者》中那些让人受益终生的句子
- 用c语言编写人机结合的加法,综合集成研讨厅中人机结合的研讨流程研究.pdf
- 微信公众账号api开发
- myeclipse6.5-8.5 激活码 秘钥 及使用
- stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
- Selenium IDE源码分析
- 利用Rstudio对考试成绩进行数据分析
- 通过IP地址连接两台电脑
- burst什么意思_burst是什么意思_burst在线翻译_英语_读音_用法_例句_海词词典