【发布时间】:2021-12-04 10:07:03
【问题描述】:
我正在解决 LeetCode 问题226. Invert Binary Tree:
给定二叉树的
root,反转该树,并返回其根。示例 1
Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1]
我编写了以下 C++ 代码,但它给出了错误的答案。不知道是不是我的逻辑有问题。
代码
class Solution {
public:
void dfs1(TreeNode* root,vector<int> &vec){
if(root==NULL)
return;
dfs1(root->left,vec);
vec.push_back(root->val);
dfs1(root->right,vec);
}
void dfs2(TreeNode* root,vector<int> &vec,int &j) {
if(root==NULL)
return;
dfs1(root->right,vec);
root->val=vec[j];
j--;
dfs1(root->left,vec);
}
TreeNode* invertTree(TreeNode* root) {
vector<int> p;
dfs1(root,p);
int size=p.size()-1;
dfs2(root,p,size);
return root;
}
};
我只是在进行中序遍历并将值推送到向量中。然后我又执行了一个中序遍历,但这次我是在另一种方式遍历,即从右到左。
【问题讨论】:
标签: binary-tree depth-first-search dsa