题解 | #二叉树遍历#

二叉树遍历

http://www.nowcoder.com/questionTerminal/4b91205483694f449f94c179883c1fef

#include "cstdio"
#include "string"
using namespace std;
struct TreeNode{
    char data;
    TreeNode * leftChild;
    TreeNode * rightChild;
};
TreeNode * build(int &i,string preorder){
    //返回本棵子树根节点地址
    char c =preorder[i];
    ++i;
    if (c=='#'){
        return NULL;
    } else{
        TreeNode * pNewNode = new TreeNode;
        pNewNode->data =c;
        pNewNode->leftChild= build(i,preorder);
        pNewNode->rightChild= build(i,preorder);
        return pNewNode;
    }
}
void InOrder(TreeNode *root){
    if (root==NULL){
        return;
    }
    InOrder(root->leftChild);
    printf("%c ",root->data);
    InOrder(root->rightChild);

}
int main(){
    char preorder[100];
    int i=0;
    while (scanf("%s",preorder)!=EOF){
        TreeNode * root = build(i,preorder);
        InOrder(root);
    }
}
全部评论

相关推荐

人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
码农索隆:想看offer细节
点赞 评论 收藏
分享
昨天 19:01
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务