zoukankan      html  css  js  c++  java
  • 链表

    1 把list转化为链表

    对链表的第一个节点先进行赋值,因为其比较特殊,不方便放入for循环中.

    first_node中是表头变量,它用于记录第一个节点数据域的地址,可以看做是独立于整个链表的一个特殊的量.

    class ListNode:
        def __init__(self, data, next_=None):
            # 数据域
            self.data = data
            # 指针域,用于指向下一节点的指针域
            self.next = next_
    def from_list_to_node(l):
        # new一个链表对象,实际上链表的每个节点都是一个对象
        # 每当新建一个链表时,head表头变量就指向第一个节点的数据域.
        first_node = ListNode(l[0])
        # 把对象的引用传给previous_node,可以看成把head表头变量传过去了,
        previous_node = first_node
        for val in l[1:]:
            # 每当新建一个节点(对象)时,就把该节点(对象)的地址传给上一个节点的指针域记录下来
            previous_node.next = ListNode(val)
            # 此时previous_node中指向的是上一个节点的地址,现在把它更新为下一个节点的地址,
            # 因为下一个节点中数据域已经有值了,但指针域还是空,它准备指向下下一个节点(对象)
            previous_node = previous_node.next
        return first_node
    p = from_list_to_node([1,3,5])
    while p is not None:
        print(p.data)
        p = p.next
    # 1
    # 3
    # 5
    View Code
  • 相关阅读:
    MySQl的绑定变量特性
    数数 / DP
    MODE
    题单
    对拍
    二、图论
    sync_with_stdio(false)的副作用
    九大编程语言
    Codeforces Round #575 (Div. 3) A B C
    Educational Codeforces Round 69 (Rated for Div. 2) A B C D
  • 原文地址:https://www.cnblogs.com/xxswkl/p/11878084.html
Copyright © 2011-2022 走看看