二叉树的最大节点

    xiaoxiao2021-04-14  92

    1.问题描述:在二叉树中寻找节点最大的值并返回。

    2.思路:正如样例

    给出如下一棵二叉树:

    1 / \ -5 2 / \ / \ 0 3 -4 -5

    返回值为 3 的节点。

    在函数外定义一个很小的数和树中的一个指针(一定要在函数外定义!不然就始终是与这个数进行比较啦),然后再在树中遍历,并将节点值与x(不断更新)进行比较,找出节点最大的值,最终返回当初第内衣的指针,即可以返回节点值最大的节点。

    3.代码:

    class Solution { public: /** * @param root the root of binary tree * @return the max node */ int x=-100000; TreeNode *t; TreeNode* maxNode(TreeNode* root) { // Write your code here if(root==NULL) return NULL; else{ if(x<root->val) { x=root->val; t=root; } maxNode(root->left); maxNode(root->right); } return t; } };

    4.感想:因为函数时TreeNode类型所以一定要有返回值!还有就是x还有TreeNode中的指针一定要在函数外定义!!!

    转载请注明原文地址: https://ju.6miu.com/read-670757.html

    最新回复(0)