例如:
1 / \ / \ 2 3 / \ / \ 4 5 6 7
有序遍历输出:4 2 5 1 6 3 7
顺序代码为
Node * func(struct Node * root){ if(root!=NULL) { func(root->lChild); cout<<root->nodeValue<<" "; func(root->rChild); } return NULL;
}
您可能需要做的就是添加一个额外的参数来跟踪替代符号,如下所示:
Node * func(struct Node * root, int& signV ){ if(root!=NULL) { func(root->lChild, signV); cout<<root->nodeValue * signV <<" "; signV *= -1 ; // Change sign here func(root->rChild, signV); } return NULL; }
See Here