东莞市建设培训中心网站,基于互联网怎样做网站推广,服务器在哪里,网站开发需要什么人才给定一个二叉树#xff0c;返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单#xff0c;你可以通过迭代算法完成吗#xff1f; 来源#xff1a;力扣#xff08;LeetCode#xff09; 链接#xff1a;http… 给定一个二叉树返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单你可以通过迭代算法完成吗 来源力扣LeetCode 链接https://leetcode-cn.com/problems/binary-tree-inorder-traversal 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 方法一
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:vectorint inorderTraversal(TreeNode* root) {if(!root) return {};vectorint res;stackTreeNode * st;TreeNode *p root;while(!st.empty() || p){while(p){st.push(p);p p-left;}p st.top();st.pop();res.push_back(p-val);p p-right;}return res; }
};
解法二
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:vectorint inorderTraversal(TreeNode* root) {vectorint res;solution(root, res);return res; }void solution(TreeNode *root, vectorint res){if(root nullptr) return;solution(root-left, res);res.push_back(root-val);solution(root-right, res);}
};