原创 二叉樹的層次遍歷

遞歸法:每次先取當前節點值,然後判斷當前層是否有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