首页 > 其他分享 >BM24 二叉树的中序遍历

BM24 二叉树的中序遍历

时间:2023-01-30 17:56:05浏览次数:33  
标签:TreeNode int BM24 中序 二叉树 rc root stack result

https://www.nowcoder.com/practice/0bf071c135e64ee2a027783b80bf781d?tpId=295&tqId=1512964&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295

中序遍历,遍历顺序:左节点->当前节点->右节点

GO

切片slice模拟栈

package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型一维数组 */ func inorderTraversal( root *TreeNode ) []int { // write code here stack := make([]*TreeNode,0) rc := root result := make([]int,0)
for rc != nil || len(stack) > 0{ for rc != nil{ stack = append(stack,rc) rc = rc.Left } rc = stack[len(stack)-1] stack = stack[:len(stack)-1] result = append(result, rc.Val) rc = rc.Right } return result }   运行时间 9ms   占用内存 1212KB

C++

 

/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型vector */ vector<int> inorderTraversal(TreeNode* root) { // write code here vector<int> result; stack<TreeNode*> st; TreeNode* rc = root;
while(rc != nullptr || st.size() > 0){ while(rc != nullptr){ st.push(rc); rc = rc->left; } rc = st.top(); st.pop(); result.push_back(rc->val); rc = rc->right; } return result; } }; 运行时间 4ms   占用内存 524KB

 

标签:TreeNode,int,BM24,中序,二叉树,rc,root,stack,result
From: https://www.cnblogs.com/starter-songudi/p/17076836.html

相关文章

  • 114. 二叉树展开为链表
    问题描述https://leetcode.cn/problems/flatten-binary-tree-to-linked-list/description/解题思路这个题目,用一个数组就能很好的解决。但空间复杂度是O(n).题目中给的......
  • 二叉树
    线索二叉树1、问题的提出2、线索二叉树的概念n个节点的二叉链表中包含有n+1个空指针域【2n-(n-1)=n+1】{如上图,n为6,空指针域为7},利用二叉链表中的空指针域,存放指......
  • [数据结构]二叉树的前中后序遍历(递归+迭代实现)
    二叉树的遍历主要的三种遍历方式二叉树主要的遍历方式有前序遍历、中序遍历和后序遍历。(1)前序遍历:根节点-->左子树-->右子树(2)中序遍历:左子树-->根节点-->右子树(3)后序......
  • 力扣257 二叉树的所有路劲
    题目:给你一个二叉树的根节点root,按任意顺序,返回所有从根节点到叶子节点的路径。叶子节点是指没有子节点的节点。示例:输入:root=[1,2,3,null,5]输出:["1->2->......
  • 二叉树遍历 前序 中序 后序
    packagecom.pay.test;importjava.util.LinkedList;publicclassNode{privateIntegerdata;privateNodeleft;privateNoderight;publ......
  • 力扣110 平衡二叉树
    题目:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例:输入:root......
  • 力扣222 完全二叉树
    题目:给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面......
  • 代码随想录算法训练营第15天 | 二叉树的层序遍历226. 翻转二叉树 101.对称二叉树
    102.二叉树的层序遍历文章:代码随想录(programmercarl.com)视频:讲透二叉树的层序遍历|广度优先搜索|LeetCode:102.二叉树的层序遍历_哔哩哔哩_bilibili思路:层序遍......
  • 代码随想录算法训练营day14 | leetcode 层序遍历 226.翻转二叉树 101.对称二叉树 2
    层序遍历/***二叉树的层序遍历*/classQueueTraverse{/***存放一层一层的数据*/publicList<List<Integer>>resList=newArrayList<>()......
  • 257. 二叉树的所有路径
    问题描述https://leetcode.cn/problems/binary-tree-paths/description/解题思路叶子结点时,添加到结果序列即可。代码#Definitionforabinarytreenode.#class......