【Leetcode】NO.94 二叉树的中序遍历 (C++&Python) [二叉树]
2022/1/4 11:37:56
本文主要是介绍【Leetcode】NO.94 二叉树的中序遍历 (C++&Python) [二叉树],对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目:94. 二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
思路
- 迭代法使用中序遍历
- 一直遍历到做子树的最底层
- 再pop出当前节点,之后再遍历右子树
开辟一个栈存节点,一个数组保存节点的值
判断节点是否为空,或者栈是否为空
代码
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<int> inorderTraversal(TreeNode* root) { stack<TreeNode*> s; vector<int> result; TreeNode *cur = root; while(cur!=NULL || !s.empty()) { if(cur!=NULL) //将一直遍历到最左边 { s.push(cur); cur = cur->left; } else { // 把点Put cur = s.top(); s.pop(); //将数据弹出了 result.push_back(cur->val); cur = cur->right; } } return result; } };
这篇关于【Leetcode】NO.94 二叉树的中序遍历 (C++&Python) [二叉树]的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04Python外包有哪些常见的主要库-icode9专业技术文章分享
- 2024-10-02基于深度学习的钢铁缺陷检测系统(yolov8、注意力机制、PyQt5界面、Python)
- 2024-10-01怎么用python搭建一个系统-icode9专业技术文章分享
- 2024-09-30Python基础入门教程
- 2024-09-30获取参数学习:Python中的基础教程
- 2024-09-30Python编程基础详解
- 2024-09-29点击加载学习:Python编程基础教程
- 2024-09-29数据科学五大Python前端库:第二部分
- 2024-09-27使用python 将ETH账户的资产打散
- 2024-09-26Python编程基础