小黑隔离日期被多次刷新,深感绝望,得亏阿黄能陪我几天的leetcode之旅:226. 翻转二叉树,257. 二叉树的所有路径

本文主要是介绍小黑隔离日期被多次刷新,深感绝望,得亏阿黄能陪我几天的leetcode之旅:226. 翻转二叉树,257. 二叉树的所有路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

226. 翻转二叉树

小黑做法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:# 递归函数def dfs(node):if not node:return Nonenode.left,node.right = node.right,node.leftdfs(node.left)dfs(node.right)dfs(root)return root

在这里插入图片描述

层次遍历法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return# 初始化队列q = collections.deque([root])while q:# 根结点出队列top = q.popleft()# 交换操作top.left, top.right = top.right, top.leftif top.left:q.append(top.left)if top.right:q.append(top.right)return root

在这里插入图片描述

257. 二叉树的所有路径

小黑做法

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:if not root:return []self.paths = []def dfs(node, path):# 递归出口if not (node.left or node.right):self.paths.append(''.join(path))# 遍历左子树if node.left:path.append('->'+str(node.left.val))dfs(node.left,path)# 左子树结点poppath.pop()# 遍历右子树if node.right:path.append('->'+str(node.right.val))dfs(node.right,path)# 右子树结点poppath.pop()dfs(root,[str(root.val)])return self.paths

在这里插入图片描述

层次遍历

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def binaryTreePaths(self, root: Optional[TreeNode]) -> List[str]:if not root:return []# 初始化队列q = collections.deque([root])q_str = collections.deque([str(root.val)])paths = []while q:# 出队top = q.popleft()top_str = q_str.popleft()# 输出路径字符串if not (top.left or top.right):paths.append(top_str)continueif top.left:q_str.append(top_str+'->'+str(top.left.val))q.append(top.left)if top.right:q.append(top.right)q_str.append(top_str+'->'+str(top.right.val))return paths

在这里插入图片描述

小黑生活

包皮又出血了,命途多舛的手术啊,别人一个星期好了,我又重新打了一圈麻药重新做了个手术,被拉出去隔离了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

工作的继续受挫,连着两个岗位被拒,一个初筛没过,小黑陷入了崩溃

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

隔离与看病生活

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

阿黄来陪我啦!!!!

在这里插入图片描述

准备泡面啦,111宿舍(富河园校区分舍)进行秘密会议

这篇关于小黑隔离日期被多次刷新,深感绝望,得亏阿黄能陪我几天的leetcode之旅:226. 翻转二叉树,257. 二叉树的所有路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/265524

相关文章

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

leetcode105 从前序与中序遍历序列构造二叉树

根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3/ \9 20/ \15 7   class Solution {public TreeNode buildTree(int[] pr

【408DS算法题】039进阶-判断图中路径是否存在

Index 题目分析实现总结 题目 对于给定的图G,设计函数实现判断G中是否含有从start结点到stop结点的路径。 分析实现 对于图的路径的存在性判断,有两种做法:(本文的实现均基于邻接矩阵存储方式的图) 1.图的BFS BFS的思路相对比较直观——从起始结点出发进行层次遍历,遍历过程中遇到结点i就表示存在路径start->i,故只需判断每个结点i是否就是stop