LeetCode开心刷题四十四天——61. Rotate List 82. Remove Duplicates from Sorted List II(时间慢,空间70)
时间:2019-09-19
本文章向大家介绍LeetCode开心刷题四十四天——61. Rotate List 82. Remove Duplicates from Sorted List II(时间慢,空间70),主要包括LeetCode开心刷题四十四天——61. Rotate List 82. Remove Duplicates from Sorted List II(时间慢,空间70)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
61. Rotate List
Medium
Given a linked list, rotate the list to the right by k places, where k is non-negative.
Example 1:
Input: 1->2->3->4->5->NULL, k = 2 Output: 4->5->1->2->3->NULL Explanation: rotate 1 steps to the right: 5->1->2->3->4->NULL rotate 2 steps to the right: 4->5->1->2->3->NULL
Example 2:
Input: 0->1->2->NULL, k = 4 Output:2->0->1->NULL
Explanation: rotate 1 steps to the right: 2->0->1->NULL rotate 2 steps to the right: 1->2->0->NULL rotate 3 steps to the right:0->1->2->NULL
rotate 4 steps to the right:2->0->1->NULL
很特殊的一点是采用先构成环,改变开头再断开的方式
# Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def rotateRight(self, head, k): """ :type head: ListNode :type k: int :rtype: ListNode """ if k==0:return head if head==None:return head dummy=ListNode(0) dummy.next=head p=dummy count=0 while p.next: p=p.next count+=1 # 这里成环了,p和dummy是相等的,dummy代表的是开始的数值,p已经走到了结尾,结尾又连到了开始 p.next=dummy.next step=count-(k%count) for i in range(0,step): p=p.next head=p.next # 在这步之前都是成环的,输出head会不停的,之前形成环,算step在合适的地方剪断 p.next=None # while True: # print("start") # print(head.val) # if not head.next: break # head = head.next return head solu=Solution() head=ListNode(1) l2=ListNode(2) l3=ListNode(3) l4=ListNode(4) l5=ListNode(5) head.next=l2 l2.next=l3 l3.next=l4 l4.next=l5 k=2 ans=solu.rotateRight(head,k) while True: print(ans.val) if not ans.next:break ans=ans.next
82. Remove Duplicates from Sorted List II
Medium
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
Example 1:
Input: 1->2->3->3->4->4->5 Output: 1->2->5
Example 2:
Input: 1->1->1->2->3 Output: 2->3
import collections # from collections import Counter # Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self.next = None class Solution(object): def deleteDuplicates(self, head): """ :type head: ListNode :rtype: ListNode """ root=ListNode(0) root.next=head val_list=[] # 形成字典 while head: val_list.append(head.val) head=head.next counter=collections.Counter(val_list) head=root while head.next: if counter[head.next.val]!=1: head.next=head.next.next else: head=head.next return root.next solu=Solution() head=ListNode(1) l2=ListNode(1) l3=ListNode(2) l4=ListNode(2) l5=ListNode(4) head.next=l2 l2.next=l3 l3.next=l4 l4.next=l5 ans=solu.deleteDuplicates(head) while True: print(ans.val) if not ans.next: break ans=ans.next
原文地址:https://www.cnblogs.com/Marigolci/p/11547209.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解RocketMQ事务消息
- 带你白嫖程序带宽限制命令Trickle
- Fix SSH客户端登录会话超时设置
- JAVA的泛型与反射的联合应用
- 专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)
- 计算上传文件的存放路径
- 按照list中实体类的某一属性排序
- java邮件开发
- java计算某日期之后的日期
- 文件上传之Html5 + jQuery上传、asp.net web api接收
- Struts2自定义结果视图(servlet验证码)
- jQuery Ajax传递数组到asp.net web api参数为空
- asp.net web api集成微信服务(使用Senparc微信SDK)
- asp.net web api添加统一异常处理
- .NET HttpClient扩展