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;

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

这是为什么??

相关内容

热门资讯

分享认知!wepoke有插件的... 分享认知!wepoke有插件的(有辅助)中至小程序辅助器真的假的(有挂手册);玩家必备必赢加哟《43...
六分钟了解!wpk输赢机制(透... 六分钟了解!wpk输赢机制(透视)同城游辅助工具(有挂指点);同城游最新软件透明挂直接下载安装,这也...
TCP有什么漏洞 TCP(传输控制协议)本身设计时考虑了安全性,但存在一些漏洞和弱点,如序列号预测、SYN泛洪攻击等。...
十点读书怎么调整字体 在十点读书APP内,通常可以在设置或阅读界面的字体大小选项中调整字体。具体操作可能因版本更新而异,建...
javascript是什么漏洞 JavaScript是一种广泛使用的编程语言,用于为网页添加交互性。由于其灵活性和客户端执行特性,J...
新2024版攻略!微扑克ai辅... 新2024版攻略!微扑克ai辅助器苹果版(有挂的)闲逸游戏有辅助的(有挂辅导);AI智能教程细节普及...
人工智能的新时代:从模型到应用... 💝💝💝欢迎来到我的博客,很高兴能够在这...
【深度学习】AI修图——Dra... 1、前言上一篇,我们讲述了StyleGAN2。这一篇,我们就来讲一个把S...
谷歌浏览器如何自动清除缓存 在谷歌浏览器中,点击右上角的三个点,选择“设置”,点击“隐私和安全”,再点击“清除浏览数据”,选择时...
电脑如何解锁驱动器(win10... 在Windows 10中,要解锁BitLocker加密的驱动器,通常需要输入解密密钥或恢复密钥。可在...