和 (&&) CPP 中的指针
and (&&) of pointers in cpp
我想知道if(left && right)
和if(left != NULL && right != NULL)
之间的区别
我正在为二叉树的最低共同祖先编写程序,它们都不是 NULL 不会有 和(&&
(是1,即(left && right == 1
(但我对此得到了错误的答案。
另一方面,if(left!=NULL && right != NULL)
工作正常。
我是 cpp 的新手,如果问题太愚蠢,请原谅我。
问题链接代码
失败的测试用例
[3,5,1,6,2,0,8,null,null,7,4] 它是来自 leetcode 的预序遍历
5
四
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if(root==NULL||root==p||root==q)return root;
TreeNode* left = lowestCommonAncestor(root->left,p,q);
TreeNode* right = lowestCommonAncestor(root->right,p,q);
if(!left && !right)return NULL;
if(left && root)return root;
// if(left != NULL && right != NULL) return root;
return left == NULL ? right : left;
}
这仅仅是因为你下面的两个陈述并不等价:
if(left && root)return root;
// if(left != NULL && right != NULL) return root;
在第一行中,您检查左和根,在第二行中检查左和右。
附言(左(和(左!= NULL(是等效的
相关文章:
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 如何循环访问 cpp 中的函数返回的字符指针数组
- 和 (&&) CPP 中的指针
- 无法"this"指针传递到另一个类并在 CPP 中调用该类的任何方法
- 具有虚拟指针和继承的 CPP 类大小
- 在两个.cpp文件之间定义全局类/结构指针
- 当指针在 cpp 17 中失去引用时,是否会调用非默认析构函数?
- 在 cpp 中嵌入 python:如何获取指向 python 函数(而不是 PyObject)的 C 指针?
- Antlr cpp 运行时 任何错误的指针转换?
- 使用指针编译代码后,.cpp文件将变为随机字符
- R-->cpp 如何让C++指针与 sourceCpp (Bellman Ford 算法)
- YAML-CPP 编码/解码指针?
- CPP:如何使用需要指针的方法创建线程
- 在CPP中访问静态功能的指针
- 使用函数指针将 C 转换为 CPP
- 为什么我不能通过在 cpp 中使用新运算符传递指针来更改值?
- 由于删除对象而导致的 Cpp 代码主线程冻结可以使用智能指针解决,也可以不使用智能指针来解决
- CPP 对 std::list 中指针的引用
- CPP 中结构类型的指针的矢量数组
- 使用基类指针 - cpp 的适当声明设计接口