我刚刚开始使用树并正在编写遍历二叉树并访问每个节点的函数。我为树中的每个节点调用一个名为doSomething(TreeNode * thisNode)的函数。我想确定我所拥有的东西是否正确,我是否正确?谢谢!遍历二叉树的函数
void MyTree::Traverse(TreeNode *rt)
{
If(rt != NULL)
Traverse(rt -> left);
doSomething (rt);
Traverse(rt -> right);
}
我刚刚开始使用树并正在编写遍历二叉树并访问每个节点的函数。我为树中的每个节点调用一个名为doSomething(TreeNode * thisNode)的函数。我想确定我所拥有的东西是否正确,我是否正确?谢谢!遍历二叉树的函数
void MyTree::Traverse(TreeNode *rt)
{
If(rt != NULL)
Traverse(rt -> left);
doSomething (rt);
Traverse(rt -> right);
}
差不多,但不完全。
C++中if
声明没有资本化,则必须按如下加上括号:
void MyTree::Traverse(TreeNode *rt)
{
if(rt != NULL)
{
Traverse(rt -> left);
doSomething (rt);
Traverse(rt -> right);
}
}
如果不加括号,语句doSomething(rt)
和Traverse(rt->right)
将如果节点是有效称为不管或不!
用一些相关的测试用例来调试你的程序总是一个好主意。在你的代码中,如果rt不是NULL,你认为会发生什么?这应该可以帮助你弄清楚你是否做得对。
非常感谢! –