首页 > 其他分享 >【LeeCode】94. 二叉树的中序遍历

【LeeCode】94. 二叉树的中序遍历

时间:2022-12-03 20:01:00浏览次数:64  
标签:right TreeNode val res 中序 list LeeCode 二叉树 root

【题目描述】

给定一个二叉树的根节点 ​​root​​ ,返回 它的 中序 遍历 。

​https://leetcode.cn/problems/binary-tree-inorder-traversal/description/?favorite=2cktkvj​

【示例】

【LeeCode】94. 二叉树的中序遍历_中序

【代码】

package com.company;
import java.util.*;

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;
}

@Override
public String toString() {
return "TreeNode{" +
"val=" + val +
", left=" + left +
", right=" + right +
'}';
}

public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<Integer>();
dfs(res, root);
return res;
}

private void dfs(List<Integer> res, TreeNode root) {
if (root == null) return;
// 中序: 左 输 右
dfs(res, root.left);
res.add(root.val);
dfs(res, root.right);
}
}
public class Test {
public static void main(String[] args) {
LinkedList<Integer> list = new LinkedList<>(Arrays.asList(
new Integer[]{
1, null, 2, 3
}
));
TreeNode tree = createBinaryTree(list);
List<Integer> result = new TreeNode().inorderTraversal(tree);
System.out.println(result.toString());
}
public static TreeNode createBinaryTree(LinkedList<Integer> list) {
TreeNode res = null;
if (list == null || list.isEmpty()){
return null;
}

Integer data = list.removeFirst();

if (data != null){
res = new TreeNode(data);
res.left = createBinaryTree(list);
res.right =createBinaryTree(list);
}
return res;
}
}

标签:right,TreeNode,val,res,中序,list,LeeCode,二叉树,root
From: https://blog.51cto.com/u_13682316/5908639

相关文章

  • 【LeeCode】104. 二叉树的最大深度
    【题目描述】给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。​​https://leetcode.cn/p......
  • 判断二叉树是否为满二叉树
    判断二叉树是否为满二叉树作者:Grey原文地址:博客园:判断二叉树是否为满二叉树CSDN:判断二叉树是否为满二叉树满二叉树定义一个二叉树,如果每一个层的结点数都达到最大值......
  • 【LeeCode】求两个字符串的公共字符
    【题目描述】 打印两个字符串的公共字符​【代码】packagecom.company;importjava.util.*;classSolution2{publicvoidminWindow(Strings1,Strings2){......
  • 二叉树中序遍历非递归算法实现 cpp
    二叉树中序遍历非递归算法实现#include<iostream>//二叉树中序遍历非递归算法实现usingnamespacestd;#defineMAXSIZE100/*不让用递归,那就用栈!!*///树的结点......
  • 剑指offer:二叉树中和为某一值的路径
    题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/***Definiti......
  • 二叉树前序遍历(python)
    具体做法:step1:准备数组用来记录遍历到的节点值,Java可以用List,C++可以直接用vector。step2:从根节点开始进入递归,遇到空节点就返回,否则将该节点值加入数组。step3:依次......
  • 二叉树中序遍历(python)
    def inorder(self, list: List[int], root: TreeNode):        # 遇到空节点则返回        if not root:            return ......
  • 判断是不是完全二叉树
      图1,图2是完全二叉树 图3不是完全二叉树  import java.util.*;/* * public class TreeNode { *   int val = 0; *   TreeNode lef......
  • leetcode二叉树遍历
    #include<stdio.h>#include<string.h>#include<iostream>#include<vector>#include<queue>structTreeNode{intval;TreeNode*left;TreeNode*right;......
  • 代码随想录算法训练营Day15|102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉
    代码随想录算法训练营Day15|102.二叉树的层序遍历、226.翻转二叉树、101.对称二叉树102.二叉树的层序遍历102.二叉树的层序遍历需要借用一个辅助数据结构即队列来......