2345网址导航是谷歌吗,长沙百度推广优化排名,钓鱼网站制作的报告,手机app播放器题目
给定一个二叉树的根节点 root #xff0c;返回 它的 中序 遍历 。
思路
递归#xff0c;按左中右的顺序添加节点。
利用栈先进后出的特性模拟递归。
代码
/**递归写法* Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left…题目
给定一个二叉树的根节点 root 返回 它的 中序 遍历 。
思路
递归按左中右的顺序添加节点。
利用栈先进后出的特性模拟递归。
代码
/**递归写法* 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:vectorintans;void InorderTraversal(TreeNode* node){if(nodenullptr){return ;}InorderTraversal(node-left);ans.push_back(node-val);InorderTraversal(node-right);}vectorint inorderTraversal(TreeNode* root) {ans.clear();InorderTraversal(root);return ans;}
};/**栈优化* 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:vectorint inorderTraversal(TreeNode* root) {vectorintans;ans.clear(); stackTreeNode*st;while(!st.empty()){st.pop();}while(root!nullptr||!st.empty()){while(root){st.push(root);rootroot-left;}rootst.top();ans.push_back(root-val);st.pop();root root-right;}return ans;}
};