2026/8/30 15:20:00

代码随想录算法训练营第十二天 | 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

代码随想录算法训练营第十二天 | 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度 学习内容226.翻转二叉树classSolution:definvertTree(self,root:Optional[TreeNode])-Optional[TreeNode]:ifrootisNone:returnNoneroot.left,root.rightroot.right,root.left self.invertTree(root.left)self.invertTree(root.right)returnroot学习心得前序遍历 中append操作变成交换左右节点101. 对称二叉树classSolution:defisSymmetric(self,root:Optional[TreeNode])-bool:ifnotroot:returnTurereturnself.compare(root.left,root.right)defcompare(self,left,right):ifleftNoneandright!None:returnFalseelifleft!NoneandrightNone:returnFalseelifleftNoneandrightNone:returnTrueelifleft.val!right.val:returnFalseoutsideself.compare(left.left,right.right)insideself.compare(left.right,right.left)outoutsideandinsidereturnout学习心得定义一个compare递归判断遍历104.二叉树的最大深度classSolution:defmaxDepth(self,root:Optional[TreeNode])-int:returnself.getdepth(root)defgetdepth(self,node):ifnotnode:return0lefthightself.getdepth(node.left)righthightself.getdepth(node.right)hight1max(lefthight,righthight)returnhight学习心得注意遍历顺序111.二叉树的最小深度classSolution:defminDepth(self,root:Optional[TreeNode])-int:returnself.getdepth(root)defgetdepth(self,node):ifnotnode:return0lefthightself.getdepth(node.left)righthightself.getdepth(node.right)ifnode.leftNoneandnode.right!None:return1righthightifnode.left!Noneandnode.rightNone:return1lefthight result1min(lefthight,righthight)returnresult学习心得多了两个判断条件。