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)
上一篇 2022年4月17日 上午6:40
下一篇 2022年4月17日 上午6:40


相关推荐

  • PermitRootLogin yes无效问题

    PermitRootLogin yes无效问题奶奶的,搞了半下午终于找到原因。/etc/ssh/sshd_config明明设置了PermitRootLogin为yes,可就是用putty连,root登录不了,每次都accessdenied。气死我也。同一个集群的另外10几台机器每个都是好的,唯独这一台出问题。到处查资料,翻文章,甚至直接把其他机器的sshd_config拷贝过来还是不行。最后突然想起来,会不会是root尝…

    2022年6月11日
    195
  • stream的分组_java快速对list分组

    stream的分组_java快速对list分组Stream流-分组操作文章目录Stream流-分组操作方法1,`groupingBy(Function)`方法2,`groupingBy(Function,Collector)`方法3:`groupingBy(Function,Supplier,Collector)`Collectors.groupingBy()3个方法的使用示例/**员工*@authorYang*@create2020-07-0919:57*/publicclassEmployee{

    2022年10月5日
    4
  • Excel地址 C语言

    Excel地址 C语言Excel 单元格的地址表示很有趣 它使用字母来表示列号 比如 A 表示第 1 列 B 表示第 2 列 Z 表示第 26 列 AA 表示第 27 列 AB 表示第 28 列 BA 表示第 53 列 当然 Excel 的最大列号是有限度的 所以转换起来不难 如果我们想把这种表示法一般化 可以把很大的数字转换为很长的字母序列呢 本题目既是要求对输入的数字 输出其对应的 Excel 地址表示方式 例如 输入 26 则

    2026年3月26日
    2
  • 软件测试面试题(面试前准备篇)

    软件测试面试题(面试前准备篇)目录一 问题预测让简单介绍下自己 每次面试开场 让说下自己会的内容看了哪些书籍 有问到 了解过哪些技术博客 论坛 有问到 是否了解软件测试需要掌握哪些知识 问到类似问题 之前面试过 觉得自己需要补充哪些 做了哪些行动 为什么做测试 觉得自己做测试有哪些优势 有问到 知道哪些 Bug 系统 9 测试用例的基本要素是 二 介绍一下公司项目三 技能

    2026年3月27日
    2
  • NOIP 2012 年普及组初赛试题整理「建议收藏」

    NOIP 2012 年普及组初赛试题整理「建议收藏」问题求解题目答案:5题目解析:贪心法。构造出最坏情况下至多选4点、不在同一条直线上,此时再添加任意一个点,则一定出现3点一线。题目答案:2880题目解析:圆排列问题。5名大陆选手的排列方案数为:5!5名港澳选手安排在大陆选手之间的5个空位的排列方案数为:5!总的排列方案数为:5!×5!。但每位选手左边相邻的选手均相同,为重复方案。最终结果为:阅读程序#include<iostream>usingnamespace..

    2022年8月22日
    9
  • idea2021激活破解方法

    idea2021激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    84

发表回复

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

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