一、反转链表
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @return ListNode类
#
class Solution:
def ReverseList(self , head: ListNode) -> ListNode:
# write code here
pre=None
next_node=None
while (head!=None):
next_node=head.next
head.next=pre
pre=head
head=next_node
return pre
二、前序遍历Python解法
在这里插入代码片
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def preorderTraversal(self , root: TreeNode) -> List[int]:
# write code here
if root is None:
return []
return [root.val]+self.preorderTraversal(root.left)+self.preorderTraversal(root.right)
链表中的节点每k个一组翻转
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param head ListNode类
# @param k int整型
# @return ListNode类
#
class Solution:
def reverseKGroup(self , head: ListNode, k: int) -> ListNode:
# write code here
dummp_head=ListNode(0)
dummp_head.next=head
prev=dummp_head
while head:
tail=prev
for i in range(k):
tail=tail.next
if not tail:
return dummp_head.next
tail_next=tail.next
current=head
while current !=tail:
next=current.next
current.next=prev
prev=current
current=next
return tail,current
#描述
#给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两#个加起来等于目标值的数的下标,返回的下标按升序排列。
#(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2#个数字相加得到)
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param numbers int整型一维数组
# @param target int整型
# @return int整型一维数组
#
class Solution:
def twoSum(self , numbers: List[int], target: int) -> List[int]:
# write code here
dict={}
for i in range(len(numbers)):
num=numbers[i]
if target-num in dict:
return (dict[target-num]+1,i+1)
dict[num]=i