leetcode 二叉树 空指针报错
创始人
2024-11-19 05:36:30
0

 222. 完全二叉树的节点个数

通过的代码:

/**  * Definition for a binary tree node.  * struct TreeNode {  *     int val;  *     TreeNode *left;  *     TreeNode *right;  *     TreeNode() : val(0), left(nullptr), right(nullptr) {}  *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}  *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}  * };  */ class Solution { public:     int geNum(TreeNode* cur){//确定递归函数参数和返回值         if(cur==nullptr) return 0;         //确定终止条件         int leftNum=0,rightNum=0;         TreeNode* left=cur->left;         TreeNode* right=cur->right;         while(left){             leftNum++;             left=left->left;         }         while(right){             rightNum++;             right=right->right;         }         if(leftNum==rightNum) return (2<left);         int rightTreeNum=geNum(cur->right);         int midTreeNum=leftTreeNum+rightTreeNum+1;          return midTreeNum;     }     int countNodes(TreeNode* root) {                   return geNum(root);     } };

未通过的代码:

/**  * Definition for a binary tree node.  * struct TreeNode {  *     int val;  *     TreeNode *left;  *     TreeNode *right;  *     TreeNode() : val(0), left(nullptr), right(nullptr) {}  *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}  *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}  * };  */ class Solution { public:     int geNum(TreeNode* cur){//确定递归函数参数和返回值         //if(cur==nullptr) return 0;         //确定终止条件         int leftNum=0,rightNum=0;         TreeNode* left=cur->left;         TreeNode* right=cur->right;         while(left){             leftNum++;             left=left->left;         }         while(right){             rightNum++;             right=right->right;         }         if(leftNum==rightNum) return (2<left);         int rightTreeNum=geNum(cur->right);         int midTreeNum=leftTreeNum+rightTreeNum+1;          return midTreeNum;     }     int countNodes(TreeNode* root) {         if(root==nullptr) return 0;          return geNum(root);     } };

问题:

在countNodes函数中添加的代码:

if(root==nullptr) return 0;

好像没有用似的,必须在递归函数中添加这行代码才不会报错。

这是为什么??

相关内容

热门资讯

透视讲解!wepoker辅助软... 透视讲解!wepoker辅助软件价格(透视)wepoker能不能透视(切实真的有挂)wepoker辅...
透视计算!德州透视脚本(透视)... 透视计算!德州透视脚本(透视)黑科技教程(2020已更新)(哔哩哔哩)1、用户打开应用后不用登录就可...
透视苹果版!wepoker透视... 透视苹果版!wepoker透视脚本(透视)辅助是真的假的(原来是有挂)1、点击下载安装,wepoke...
透视插件!wepokerplu... 透视插件!wepokerplus脚本(透视)wepoker是不是有人用挂(都是有挂)1、wepoke...
透视挂!pokermaster... 透视挂!pokermaster脚本(透视)必胜教程(2022已更新)(哔哩哔哩);1、pokerma...
透视ai代打!wepoker透... 透视ai代打!wepoker透视脚本免费使用视频(透视)辅助透视软件(一直真的是有挂)1、首先打开w...
透视脚本!WePoKer辅助器... 透视脚本!WePoKer辅助器(透视)wepoker脚本下载(竟然是有挂)1、下载好wepoker脚...
透视好友!wepoker有没有... 透视好友!wepoker有没有机器人(透视)有机器人(都是有挂)1、让任何用户在无需wepoker有...
透视存在!哈糖大菠萝有挂吗(透... 透视存在!哈糖大菠萝有挂吗(透视)可靠技巧(2023已更新)(哔哩哔哩);哈糖大菠萝有挂吗辅助器中分...
透视ai!wepokerplu... 透视ai!wepokerplus到底是挂了吗(透视)wepoker私人局透视教程(总是存在有挂);1...