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二叉树中序遍历相关推荐

  1. 【LeetCode 剑指offer刷题】树题19:8 二叉树中序遍历的下一个结点

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 8 二叉树中序遍历的下一个结点 题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注 ...

  2. leetcode算法题--二叉树中序遍历迭代法

    原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...

  3. 详细图解二叉树中序遍历(非递归C++)LeetCode94

    详细图解二叉树中序遍历(非递归) 二叉树中序递归含义 LeetCode题目94 详细图解 源代码 运行结果 二叉树中序递归含义 中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树.若二叉树为空则结 ...

  4. C++ morris inorder二叉树中序遍历(附完整源码)

    C++ morris inorder二叉树中序遍历 morris inorder二叉树中序遍历算法的完整源码(定义,实现,main函数测试) morris inorder二叉树中序遍历算法的完整源码( ...

  5. 初始序列为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 ...

  6. 基本题型记录-二叉树中序遍历

    由于本人基础较差,所以针对部分题型做一个记录,以免自己忘记 1.二叉树中序遍历 这个遍历方法可以搜一下博客上很多讲解,这里主要是记录一下代码实现,以下面的二叉树为例子 结果应该是 2.迭代法 2.1 ...

  7. 华为机试:二叉树中序遍历

    题目来源 华为机试:二叉树中序遍历 题目描述 题目解析 思路 class Solution{struct TreeNode{char ch;TreeNode *left;TreeNode *right ...

  8. 不用栈的二叉树中序遍历

    不用栈的二叉树中序遍历 // 中序遍历非栈非递归 void inOrder_noRecursion_noStack(TreeNode* r, char* pattern) {TreeNode* cur ...

  9. 二叉树中序遍历线索化 C++ 递归实现

    二叉树中序遍历线索化 中序遍历有一个特点,只要不是叶子节点,遍历的时候左孩子一定是当前节点的上一个访问节点:右孩子一定是当前节点的下一个访问节点. 如果把叶子节点的左右孩子都利用起来,把空的左孩子做成 ...

  10. 二叉树中序遍历线索化

    #include<stdio.h>typedef struct ThreadNode{int data;struct ThreadNode *lchild,*rchild;int ltag ...

最新文章

  1. 用Vue来实现图片上传多种方式
  2. Django + Uwsgi + Nginx 的生产环境部署
  3. Linux centosVMware Tomcat介绍、安装jdk、安装Tomcat
  4. 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
  5. html本地载入缓存文件,Flutter中如何加载并预览本地的html文件的方法
  6. linux HA工作模型详解
  7. Ubuntu18.04及以上设备安装CUDA,CUDNN,Anaconda亲测方法
  8. 300G的python资料等着你
  9. 2021数据安全与个人信息保护技术白皮书
  10. 浏览器渲染原理及性能优化
  11. 谋定而后动,理想不相信热血
  12. 唯品会导航栏简单制作
  13. Spring 项目中applicationContext.xml模板
  14. 用计算机怎么管理小米路由器,怎样用手机设定小米路由器
  15. 富不过三代已成过去,解答为什么越有钱的越有钱?
  16. 上海居住证 居转户条件
  17. CF940E Cashback 题解
  18. 东华OJ 基础 49修理牛棚
  19. 【openCV边缘检测】用传统方法实现边缘检测(二)色彩空间
  20. 各公司软件技术人员的工资

热门文章

  1. 数据库原理(上)--收集得空看
  2. 《朗读者》中那些让人受益终生的句子
  3. 用c语言编写人机结合的加法,综合集成研讨厅中人机结合的研讨流程研究.pdf
  4. 微信公众账号api开发
  5. myeclipse6.5-8.5 激活码 秘钥 及使用
  6. stm32h743单片机嵌入式学习笔记5-液晶屏汉字库原理
  7. Selenium IDE源码分析
  8. 利用Rstudio对考试成绩进行数据分析
  9. 通过IP地址连接两台电脑
  10. burst什么意思_burst是什么意思_burst在线翻译_英语_读音_用法_例句_海词词典