原创 二叉樹的層次遍歷
遞歸法:每次先取當前節點值,然後判斷當前層是否有rasult的list,接着遞歸左右節點: # Definition for a binary tree node. # class TreeNode: # def __init_
原创 移除元素
class Solution: def removeElement(self, nums: List[int], val: int) -> int: lens = len(nums) start
原创 楊輝三角
class Solution: def generate(self, numRows: int) -> List[List[int]]: result = [] if numRows == 0:
原创 反轉鏈表
方法比較簡單,使用三個指針即可 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val
原创 兩兩交換鏈表中的節點
大神的遞歸解法: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x #
原创 最長公共前綴
本來用的find,發現速度太慢,看了看大神的,是每位做比較,因此改了: class Solution: def longestCommonPrefix(self, strs: List[str]) -> str:
原创 從中序與後序遍歷序列構造二叉樹
由於後序遍歷時最後節點是根節點,接着是右子樹的根節點,一直往下。。。 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x):
原创 楊輝三角 II
class Solution: def getNSample(self, n) -> List[int]: result = [] sample = 1
原创 二叉樹遍歷通用解法
以中序遍歷爲例: 遞歸: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val =
原创 反轉字符串
因爲要在原字符串上該,因此採用雙指針法: class Solution: def reverseString(self, s: List[str]) -> None: """ Do not ret
原创 兩個數組的交集 II
解法是使用字典保存nums1和其計數,再遍歷nums2即可 class Solution: def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]
原创 最大連續1的個數
題目簡單: class Solution: def findMaxConsecutiveOnes(self, nums: List[int]) -> int: lens = len(nums) m
原创 填充每個節點的下一個右側節點指針
我的方法,使用顏色層次遍歷法,依次填next: """ # Definition for a Node. class Node: def __init__(self, val: int = 0, left: 'Node' = N
原创 完全平方數
先算小於N的完全平方數,再用這些數做廣度優先: class Solution: def numSquares(self, n: int) -> int: if n == 0:
原创 對稱二叉樹
遞歸解法: 我的解法是層序遍歷然後每層取eq(line,line[::-1]): # Definition for a binary tree node. # class TreeNode: # def __init__(sel