算法训练营打卡Day14

news/2024/10/22 11:32:47/

目录

题目1.226.翻转二叉树

题目2.101. 对称二叉树

题目1.226.翻转二叉树

力扣题目链接(opens new window)

听说一位巨佬面Google被拒了,因为没写出翻转二叉树 | LeetCode:226.翻转二叉树_哔哩哔哩_bilibili

翻转一棵二叉树。

Python

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def invertTree(self, root):""":type root: TreeNode:rtype: TreeNode"""if not root:return Noneroot.left, root.right = root.right, root.leftself.invertTree(root.left)self.invertTree(root.right)return root

C

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
struct TreeNode* invertTree(struct TreeNode* root) {if (root == NULL){return root;}struct TreeNode* temp = root->right;root->right = root->left;root->left = temp;invertTree(root->left);invertTree(root->right);return root;
}

题目2.101. 对称二叉树

力扣题目链接(opens new window)
新学期要从学习二叉树开始! | LeetCode:101. 对称二叉树_哔哩哔哩_bilibili

相似题目:

  • 100.相同的树(opens new window)
  • 572.另一个树的子树

给定一个二叉树,检查它是否是镜像对称的。

Python

class Solution:def isSymmetric(self, root: TreeNode) -> bool:if not root:return Truereturn self.compare(root.left, root.right)def compare(self, left, right):#首先排除空节点的情况if left == None and right != None: return Falseelif left != None and right == None: return Falseelif left == None and right == None: return True#排除了空节点,再排除数值不相同的情况elif left.val != right.val: return False#此时就是:左右节点都不为空,且数值相同的情况#此时才做递归,做下一层的判断outside = self.compare(left.left, right.right) #左子树:左、 右子树:右inside = self.compare(left.right, right.left) #左子树:右、 右子树:左isSame = outside and inside #左子树:中、 右子树:中 (逻辑处理)return isSame

C

public bool IsSymmetric(TreeNode root)
{if (root == null) return true;return Compare(root.left, root.right);
}
public bool Compare(TreeNode left, TreeNode right)
{if(left == null && right != null) return false;else if(left != null && right == null ) return false;else if(left == null && right == null) return true;else if(left.val != right.val) return false;var outside = Compare(left.left, right.right);var inside = Compare(left.right, right.left);return outside&&inside;
}

总结:解法只涉及到递归法,进阶的解法可以参考迭代法,难点在于理解递归的三步骤,考虑遍历的方式,是前中后遍历的哪一种,使用层序遍历等。

未完待续~


http://www.ppmy.cn/news/1533273.html

相关文章

阿里云云效多个ssh密钥对配置

实现功能 windows本地多个ssh密钥对,分别对应不同的阿里云账号的云效 实现办法 1.生成ssh密钥对 ssh-keygen -t rsa -f C:\xxx\id_rsa_customname(我这里C:\Users\admin\.ssh\id_rsa_customname) 2.配置.ssh目录的config文件 # ruiyi Host customnameHostName codeup.al…

Correlated_Covariance_Independence

Correlated 仅指存在线性关系。二次方关系不是 correlated。 Uncorrelated 指不存在线性关系,但可能有别的关系,比如说二次方等等。 这就是为什么 uncorrelated 不意味着 independence. 也即,dependent variables 不一定 correlated. 但是所…

JAVA笔记 | 实际上用到的策略模式(可直接套用)

自己开发中用到了策略模式,这样写不一定是最好的,但是满足了业务场景跟使用要求,做个笔记,下次有用到可以快速复习跟套用 假设使用场景:有几只宠物,猫跟狗等,要求他们做各种动作,比如…

服装分类检测系统源码分享

服装分类检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

国内访问OpenAI API

最近在学习LLM。绕不过去的肯定要学习OpenAI。 国内想直接使用官方API十分麻烦。就到处查资料及网友的分享。发现了这个代理可以在国内很方便的使用OpenAI API。 代理的地址如下: https://referer.shadowai.xyz/r/1014150 经过一段实际体验下来,这个…

leetcode刷题day31|贪心算法Part05重叠区间问题(56. 合并区间、738.单调递增的数字、968.监控二叉树)

56. 合并区间 思路:这个题跟气球重叠区间的题目类似,只需要先按左边界进行排序,判断是否重叠,如果重叠,就选择最小的左边界和最大的右边界构成新的区间。 代码如下: class Solution {public int[][] mer…

选择更轻松:山海鲸可视化与PowerBI的深度对比

在数据分析与可视化的时代,选择合适的报表工具显得尤为重要。山海鲸可视化和PowerBI是市场上颇受欢迎的两款免费报表软件,各有特色。接下来,我们将从功能、优缺点等方面进行对比,帮助你找到最适合的工具。 山海鲸可视化 山海鲸可…

QEMU使用Qemu-Guest-Agent传输文件、执行指令等

简介 之前介绍过qemu传输文件,使用的挂载 / samba方式 :Qemu和宿主机不使用外网进行文件传输。 这是一种方式,这里还有另一种方式:使用Qemu-Guest-Agent,后面简称qga。 官网介绍:https://www.qemu.org/d…