题解 | #二叉树遍历#

二叉树遍历

https://www.nowcoder.com/practice/4b91205483694f449f94c179883c1fef

难点在于递归建树

#include <ios>
#include <iostream>
using namespace std;
struct treeNode {
    char c;
    treeNode* leftChild;
    treeNode* rightChild;
    treeNode(char ch) {
        c = ch;
        leftChild=NULL;
        rightChild=NULL;
    }
};
string nodeStr;
int pos;
treeNode* buildTree() {
    char c=nodeStr[pos++];
    if (c == '#') {
        return NULL;
    }
    treeNode* newNode = new treeNode(c);
    newNode->leftChild = buildTree();
    newNode->rightChild = buildTree();
    
    return newNode;
}
void inOrder(treeNode* root) {
    if (root == NULL) return;
    inOrder(root->leftChild);
    cout << root->c << ' ';
    inOrder(root->rightChild);
}
int main() {

    while (cin >> nodeStr) { // 注意 while 处理多个 case
        pos=0;
        treeNode* root = buildTree();
        inOrder(root);
        cout  << endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务