Leetcode DAY 15: 层序遍 and 翻转二叉树 and 对称二叉树
创始人
2024-03-04 09:17:18
0

102. 二叉树的层序遍历

class Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []result = []#用队列que = deque([root])while que:size = len(que)res = []for _ in range(size):cur = que.popleft()res.append(cur.val)if cur.left:que.append(cur.left)if cur.right:que.append(cur.right)result.append(res)return result
  • 117.填充每个节点的下一个右侧节点指针II
    class Solution:def connect(self, root: 'Node') -> 'Node':if not root: return rootque = deque([root])while que:size = len(que)for i in range(size):if i == 0:cur = que.popleft()pre = curelse:cur = que.popleft()pre.next = curpre = pre.nextif cur.left:que.append(cur.left)if cur.right:que.append(cur.right)cur.next = Nonereturn root

226.翻转二叉树

(递归)

class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:cur = rootif not cur:return root#前序遍历 中左右#中间的处理逻辑cur.left, cur.right = cur.right, cur.leftself.invertTree(cur.left)self.invertTree(cur.right)return root
交换左右子节点 再反转左右子节点

101. 对称二叉树

class Solution:def isSymmetric(self, root: Optional[TreeNode]) -> bool:def compare(leftT: Optional[TreeNode], rightT: Optional[TreeNode]) -> bool:#首先把节点为空的情况考虑一下if leftT != None and rightT == None:return Falseelif leftT == None and rightT != None:return Falseelif leftT == None and rightT == None:return Trueelif leftT.val != rightT.val:return Falsereturn compare(leftT.left, rightT.right) and compare(leftT.right, rightT.left)if not root:return Truereturn compare(root.left, root.right)

需要写一个递归函数对根节点的左右子节点进行判断,首先考虑节点为空的情况,最后考虑节点不为空的情况。如果数值不相等,返回False。最后比较左节点的左子节点 and 右节点的右子节点是否相等 

相关内容

热门资讯

美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...