![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
chandelierds
这个作者很懒,什么都没留下…
展开
-
leetcode101. 对称二叉树
递归与迭代 迭代版本其实就是层次遍历,然后每一层都检查是否是回文结构 class Solution(object): def isSymmetric(self, root): queue = [root] while queue: queue2 = [] layer = [] for ...原创 2019-07-29 19:38:30 · 75 阅读 · 0 评论 -
95、96. 不同的二叉搜索树
95题 输出所有可能的搜索二叉树 采用递归,不断地进行root和左右子节点的递归 class Solution(object): def generateTrees(self, n): if n == 0: return [] def helper(start,end): res = [] ...原创 2019-07-29 21:29:59 · 125 阅读 · 0 评论 -
103. 二叉树的锯齿形层次遍历
思路 和层次遍历思路一致,只要加上一个layer变量,判断是否为奇数层,奇数层取反 class Solution(object): def zigzagLevelOrder(self, root): if not root: return [] res= [] queue = [root] layer...原创 2019-07-29 21:56:43 · 116 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
思路 简单递归 与前序和中序重建二叉树是一样的 class Solution(object): def buildTree(self, inorder, postorder): #递终止条件 if not inorder and not postorder: return None root = TreeNode(pos...原创 2019-07-29 22:17:20 · 136 阅读 · 0 评论 -
leetcode108. 将有序数组转换为二叉搜索树
思路 将数组中的中点作为根节点,然后递归的利用数组中点 左侧和右侧的数 分别建立左子树和右子树 class Solution(object): def sortedArrayToBST(self, nums): if not nums: return None l, r = 0, len(nums) - 1 m =...原创 2019-07-30 22:51:37 · 82 阅读 · 0 评论 -
112、113. 路径总和
思路 递归,终止条件为当左节点为空、右为空且sum减去当前节点的值为0是,才返回True class Solution(object): def hasPathSum(self, root, sum): if not root: return False if root.left == None and root.right == ...原创 2019-07-31 07:37:56 · 116 阅读 · 0 评论 -
129. 求根到叶子节点数字之和
思路 采用递归三部曲 class Solution(object): def sumNumbers(self, root): def helper(root, sum): #终止条件 if not root: return 0 #这一步要做什么 ...原创 2019-08-01 20:44:02 · 107 阅读 · 0 评论 -
437. 路径总和 III
和112、113题类似 不过这一题更难一些,需要进行双重递归:即对每个节点做递归,再以该节点为起点进行DFS,搜寻满足条件的路径 class Solution(object): def __init__(self): self.count = 0 def pathSum(self, root, sum): if not root:...原创 2019-08-15 21:54:31 · 148 阅读 · 0 评论 -
257. 二叉树的所有路径
思路 DFS递归 class Solution(object): def binaryTreePaths(self, root): #递归终止条件 if not root: return [] if not root.left and not root.right: return [str(r...原创 2019-09-06 22:18:50 · 104 阅读 · 0 评论