标签:right return nullptr dfs 遍历 二叉树 对称 101 left
✅做题思路or感想:
- 这题是要同时遍历左子树和右子树
- 遍历左子树的外侧和右子树的外侧
- 遍历左子树的内侧和右子树的内侧
- 最后判读是否外侧和内侧都是对称的
class Solution {
public:
bool dfs(TreeNode* left, TreeNode* right) {
//处理左右节点有空节点的情况,实际上也是处理递归到尽头时的情况,到尽头是就要触底反弹,返回值了
if (left != nullptr && right == nullptr)return false;
else if (left == nullptr && right != nullptr)return false;
else if (left == nullptr && right == nullptr)return true;
else if (left->val != right->val)return false;
bool leftTree = dfs(left->left, right->right); //遍历外侧
bool rightTree = dfs(left->right, right->left); //遍历内侧
return leftTree && rightTree; //看外侧和内侧是否都对称
}
bool isSymmetric(TreeNode* root) {
if (root == nullptr)return true;
return dfs(root->left, root->right);
}
};
标签:right,return,nullptr,dfs,遍历,二叉树,对称,101,left 来源: https://www.cnblogs.com/doomaa/p/16062032.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。