剑指offer python版 反转链表

class ListNode(object):
    def __init__(self,x):
        self.val=x
        self.next=None

class Link(object):
    def __init__(self,values=None):
        self.nodes=self.set_link(values) if  values else None

    def get_link(self):
        return self.nodes
    def set_link(self,values):
        if not values :
            return False
        head=ListNode(0)
        move=head

        try:
            for i in values:
                tmp=ListNode(i)
                move.next=tmp
                move=move.next

        except Exception as e:
            print(e)

        return head.next
def aa(head):
    if not head and not head.next:
        return head
    then=head.next
    head.next=None
    last=then.next
    while then:
        then.next=head
        head=then
        then=last
        if then:
            last=then.next

    return head.val

a=Link([1,2,3,3,4,5,6,7])

b=a.get_link()

print (aa(b))

原文地址:https://www.cnblogs.com/xzm123/p/9851171.html

时间: 2024-11-09 22:37:46

剑指offer python版 反转链表的相关文章

剑指offer python版 删除链表中重复的结点

class ListNode(object): def __init__(self,x): self.val=x self.next=None class Link(object): def __init__(self,values=None): self.nodes=self.set_link(values) if values else None def get_link(self): return self.nodes def set_link(self,values): if not v

剑指offer六:反转链表

输入一个链表,反转链表后,输出链表的所有元素 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode ReverseList(ListNode head) { ListNode pre = null; ListNode next = null; while(head != null){

剑指Offer对答如流系列 - 反转链表

面试题24:反转链表 题目描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点 链表结构 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } 问题分析 头插法是反转链表非常经典的一种手段,这里演示一下吧,毕竟这个在JDK源码中也能遇见. 核心代码如下: ListNode Inverse(ListNode L) { ListNode p,

剑指offer python版 二叉搜索树与双向链表

from collections import deque class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None class Tree(object): """ 非二叉搜索树,建树的时候values中的顺序需要注意 之后有时间会改成二叉搜索树 """ def __init__(self): self.root =

剑指offer python版 二维数组的查找

def find_integer(matrix, num): """ :param matrix: [[]] :param num: int :return: bool """ if not matrix: return False rows, cols = len(matrix), len(matrix[0]) row, col = rows - 1, 0 while row >= 0 and col <= cols - 1: if

剑指offer python版 实现单例模式

class singleTon(object): def __init__(self,x): self.val=x single2=singleTon(2) a=single2 b=single2 print(a==b) print(a.val) a.val=334 print(b.val) 原文地址:https://www.cnblogs.com/xzm123/p/9847787.html

剑指offer python版 替换空格

print('dd dd add'.replace(' ','dd')) 原文地址:https://www.cnblogs.com/xzm123/p/9847854.html

剑指offer python版 顺时针打印矩阵

def aa(matrix): rows=len(matrix) cols=len(matrix[0]) start=0 ret=[] while start*2 <rows and start*2<cols: bb(matrix,rows,cols,start,ret) start +=1 return ret def bb(matrix,rows,cols,start,ret): row=rows-start-1 col=cols-start-1 for c in range(start,

剑指offer python版 数组中出现次数超过一半的数字

def aa(nums): if not nums: return False hashes={} ret=[] for s in nums: hashes[s]=hashes[s]+1 if hashes.get(s) else 1 if hashes[s] >len(nums)/2: ret.append(s) return list(set(ret)) print(aa([1,2,3,2,2,2,2,2,3,2,3,3,4])) 原文地址:https://www.cnblogs.com/x