zoukankan      html  css  js  c++  java
  • 先序遍历建立二叉树,求保存最大数字的叶子节点到最小数字的叶子结点的距离 2016网易编程题

    输入:每行3个数字,第一个数字表示左子数节点个数,第二个数字表示右子树结点个数,第3个数字表示当前节点值。

    输入就是按照先序遍历顺序提供的。

    例如:

    1 2 4

    0 0 2

    1 0 3

    0 0 1对应的二叉树就是,先序遍历为4-2-3-1,中序遍历为2-4-1-3。

    我们先来按照要求建树,直接就是先序遍历,来看实现:

    #include<iostream>
    using namespace std;
    
    struct TreeNode{
        int val;
        struct TreeNode* left;
        struct TreeNode* right;
        TreeNode(int x):val(x),left(nullptr),right(nullptr){}
    };
    
    void create(TreeNode*& T){
        int v1, v2, val;
        cin >> v1 >> v2 >> val;
        //int remain = v1 + v2;
        T = new TreeNode(val);
        if (v1 == 0 && 0 == v2){
            return;
        }
        if (v1 != 0){
            create(T->left);
        }
        if (v2 != 0){
            create(T->right);
        }
    }
    
    void Preorder(TreeNode* root){
        if (root == nullptr)
            return;
        static int count = 1;
        if (root != nullptr){
            cout << "节点" << count++ << ":" << root->val << endl;
        }
        Preorder(root->left);
        Preorder(root->right);
    }
    
    int main(){
        TreeNode* tree=nullptr;
        create(tree);
        Preorder(tree);
    
        return 0;
    }
    View Code
    手里拿着一把锤子,看什么都像钉子,编程界的锤子应该就是算法了吧!
  • 相关阅读:
    设计模式-观察者模式
    idea 生成 protobuf
    springboot @Autowride 注入空 调用时报Null空指针
    Netty 服务端创建过程
    git failed to push some refs to
    SPI simp
    Controller之statefulset
    Service
    Controller之deployment
    rabbitmq“ Login was refused using authentication mechanism PLAIN”
  • 原文地址:https://www.cnblogs.com/chess/p/5310306.html
Copyright © 2011-2022 走看看