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 ...
最新文章
- python起步输入-Python 起飞系列————起步(一)
- Python文件操作IO open 读-取-写
- java中的controller_详解Spring Boot中Controller用法
- mysql常用命令集合 及附图操作
- UART_RECV详细设计方案
- 桌面虚拟化在学生教室及机房的应用案例
- ASP.NET MVC中的安全性
- 鲲鹏BoostKit虚拟化使能套件,让数据加密更安全
- MySQL数据库约束(非空,唯一,默认,主键,外键约束)
- 技嘉主板开机自动进入bios怎么解决?
- Android 4.0 人脸,Android 4.0.3!原道N90人脸识别试用
- web数据可视化(ECharts版)
- UI设计——以网易云音乐为例
- mysql历史表_MySQL历史表设计和查询
- Proe5 修改默认模板单位为公制
- vue 点击打开pdf
- 爬楼梯--每次只能走一步或者两步,但是不能连续走两步
- mysql explain type_MySQL explain type详解
- Composite(组合模式)
- async和await以及promise的区别
热门文章
- P2627 [USACO11OPEN]Mowing the Lawn G(单调队列优化dp)
- 遇到一个很冷门的bug(java.lang.NoSuchMethodException问题原因及解决办法)
- 平面向量内积坐标公式推导_向量内积的坐标表示.ppt
- vue + echarts 实现以中国为中心的世界3D地图
- 计算机画图保存的图片怎么找到,想知道电脑截图保存在哪儿找
- Codeforces 917B MADMAX (DP+博弈)
- cypress——前端自动化测试框架
- 留学回国人员申办上海常住户口实施细则
- 【微信H5开发】the permission value is offline verifying
- Time-Series Representation Learning via Temporal and Contextual Contrasting