1、二叉树节点定义
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
2、遍历二叉树
三种方式,最直观的方式是递归实现,下面是前序遍历的代码,中序和后序只需要改变一下语句顺序就可以。
class Solution {
public:
vector<int> preorderTraversal(TreeNode* root) {
vector<int> result;
if(root==NULL)
return result;
preorderTraversal(root,result);
return result;
}
void preorderTraversal(TreeNode* root, vector<int> &result)
{
if(root==NULL)
return;
result.push_back(root->val);
preorderTraversal(root->left,result);
preorderTraversal(root->right,result);
}
};
非递归的方式