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;

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

这是为什么??

相关内容

热门资讯

透视存在!wpk透视辅助靠谱吗... 透视存在!wpk透视辅助靠谱吗(透视)详细教程(原来有挂);1、全新机制【wpk透视辅助靠谱吗软件透...
透视好友房!wepoker透视... 透视好友房!wepoker透视挂底牌,微乐广西麻辣辅助,揭秘攻略(有挂技巧);1、超多福利:超高返利...
透视游戏!hhpoker辅助器... 透视游戏!hhpoker辅助器(透视)教你教程(切实真的有挂);1、透视游戏!hhpoker辅助器(...
透视游戏!aapoker脚本怎... 透视游戏!aapoker脚本怎么用,潮汕暗宝辅助器脚本,新版2025教程(有挂教程);1、潮汕暗宝辅...
透视了解!wepoker辅助器... 透视了解!wepoker辅助器是真的的吗(透视)第三方教程(真是是真的有挂)1、许多玩家不知道wep...
透视软件!pokemomo辅助... 透视软件!pokemomo辅助工具,创思维激k看底牌辅助软件,爆料教程(有挂技巧)1、构建自己的创思...
透视软件!hhpoker辅助软... 透视软件!hhpoker辅助软件下载(透视)力荐教程(其实真的有挂)1、hhpoker辅助软件下载透...
透视挂透视!hhpoker免费... 透视挂透视!hhpoker免费透视脚本,十三水透视挂,技巧教程(有挂方法)1、下载好十三水透视挂辅助...
透视新版!wepoker透视脚... 透视新版!wepoker透视脚本免费下载(透视)透视教程(原来是有挂);1、玩家可以在wepoker...
透视辅助!wepoker养号规... 透视辅助!wepoker养号规律,掌电竞技辅助器,科技教程(有挂攻略)1、玩家可以在掌电竞技辅助器软...