python listnode.val(Python算法)

在做leetcode简单题的时候发现了python的listcode,记录一下。源自:https://www.cnblogs.com/yuanmingzhou/p/9661152.htmlclassNode(object):def__init__(self):self.val=Noneself.next=NoneclassNode_handle():def__init__(self):self.cur_n

大家好,又见面了,我是你们的朋友全栈君。

在做leetcode简单题的时候发现了python的listcode,记录一下。

源自:

https://www.cnblogs.com/yuanmingzhou/p/9661152.html

class Node(object):
    def __init__(self):
        self.val = None
        self.next = None

class Node_handle():
    def __init__(self):
        self.cur_node = None
  # 查找
    def find(self,node,num,a = 0):
        while node:
            if a == num:
                return node
            a += 1
            node = node.next
  # 增加
    def add(self,data):
        node = Node()
        node.val = data
        node.next = self.cur_node
        self.cur_node = node
        return node
  # 打印
    def printNode(self,node):
        while node:
            print ('\nnode: ', node, ' value: ', node.val, ' next: ', node.next)
            node = node.next
   # 删除
    def delete(self,node,num,b = 1):
        if num == 0:
            node = node.next
            return node
        while node and node.next:
            if num == b:
                node.next = node.next.next
            b += 1
            node = node.next
        return node
  # 翻转
    def reverse(self,nodelist):
        list = []
        while nodelist:
            list.append(nodelist.val)
            nodelist = nodelist.next
        result = Node()
        result_handle =Node_handle()
        for i in list:
            result = result_handle.add(i)
        return result

if __name__ == "__main__":
    l1 = Node()
    ListNode_1 = Node_handle()
    l1_list = [1, 8, 3]
    for i in l1_list:
        l1 = ListNode_1.add(i)
    ListNode_1.printNode(l1)
    l1 = ListNode_1.delete(l1,0)
    ListNode_1.printNode(l1)
    l1 = ListNode_1.reverse(l1)
    ListNode_1.printNode(l1)
    l1 = ListNode_1.find(l1,1)
    ListNode_1.printNode(l1)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux命令大全(2)

    linux命令大全(2)

    2021年7月17日
    51
  • python保留小数位的两种方法总结[通俗易懂]

    python保留小数位的两种方法总结[通俗易懂]题目背景:方法一:format函数format有不同用法,代码如下,前者使用了占位符{},使用占位符可以同时输出多个,后者一次只能输出一个importmathres=math.sqrt(a**2+b**2)#使用占位符print(‘{:.3f}’.format(res))#可以同时输出多个print(‘{:.3f}\n{:.2f}’.format(res,res))#不使用占位符只能输出一个print(format(res,’.3f’))运行结果:方法二:’%

    2022年8月12日
    4
  • 高速电平转换芯片_电平转换电路分压

    高速电平转换芯片_电平转换电路分压现在很多SOC器件为了降低功耗,都把IO口的电平设计成了1.8V,核电压0.85V,当这种SOC做主平台时,在做接口设计需要格外关注电平的匹配。单板中经常需要将1.8V的电平转换成3.3V或者转成5V。如果没有注意到输入和输出信号之间的电平匹配,系统就无法正常工作。这篇文章主要从两个简单的案例入手,分析电平转换电路需要注意的一些问题,以及在此类芯片数据手册中几个重要参数的解读,对开发人员来说,掌握这些器件的参数是器件选型必须关注的点。三极管做电平转换以常见的三极管做1.8V转3.3V为案例。电路图

    2022年8月10日
    9
  • GitLab分支介绍

    GitLab分支介绍GitLab简介:GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby写成。后来,一些部分用Go语言重写。截止2018年5月,该公司约有290名团队成员,以…

    2025年5月25日
    3
  • java标识符命名规范

    java标识符命名规范标识符identifier命名规范作用常量、变量、方法、类和包的名称等1、标识符不能以数字开头2、必须以下划线、字母、$开头3、java中包名、类名是不区分大小写的,也就是说包名:com.wang和com.Wang是相同的包名(即只要字母相同,不区分大小写,都是相同的包名);Aa和aA是相同的类名。这种情况小编译都会报错!!!!###但在使用命令窗口执行java类是,类名是区分大小写的:例如类名是HelloWorld的类执行时的命令是javaHelloWorld不能是jav

    2022年7月8日
    35
  • linux中用户态和内核态是什么_用户态内核

    linux中用户态和内核态是什么_用户态内核内核态:操作系统在内核态运行——运行操作系统程序用户态:应用程序只能在用户态运行——运行用户程序当一个进程在执行用户自己的代码时处于用户运行态(用户态),此时特权级最低,为3级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态。Ring3状态不能访问Ring0的地址空间,包括代码和数据;当一个进程因为系统调用陷入内核代码中执行时处于内核运行态(内核态),此时特权级最高,为0级。执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。…

    2022年9月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号