Python 链表 指针重载 简单逻辑图解

class ToNext:
    def __init__(self, x):
        self.val = x
        self.next = None
prenode = ToNext(0)

Pre → { .val → 0 .next → None \begin{aligned} {\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ \text{.next} \to &{\color{green}\text{None}} \end{cases} \end{aligned} Pre{.val.next0None

lastnode = prenode

Last → Pre → { .val → 0 .next → None \begin{aligned}{\color{red}\boxed{\text{Last}}} \to {\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ \text{.next} \to &{\color{green}\text{None}} \end{cases} \end{aligned} LastPre{.val.next0None

lastnode.next = ToNext(8)

Last → Pre → { .val → 0 .next → { .val → 8 .next → None \begin{aligned}{\color{red}\boxed{\text{Last}}} \to {\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ {\color{red}\text{.next}} \to &\begin{cases}\text{.val} \to &8 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases} \end{cases} \end{aligned} LastPre.val.next0{.val.next8None

lastnode = lastnode.next

Pre → { .val → 0 Last → { .val → 8 .next → None \begin{aligned}{\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ {\color{red}\boxed{\text{Last}}} \to &\begin{cases}\text{.val} \to &8 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases} \end{cases} \end{aligned} Pre.valLast0{.val.next8None

lastnode.next = ToNext(5)

Pre → { .val → 0 Last → { .val → 8 .next → { .val → 5 .next → None \begin{aligned}{\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ {\color{red}\boxed{\text{Last}}} \to &\begin{cases}\text{.val} \to &8 \\ {\color{red}\text{.next}} \to &\begin{cases}\text{.val} \to &5 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases}\end{cases} \end{cases} \end{aligned} Pre.valLast0.val.next8{.val.next5None

lastnode = lastnode.next

Pre → { .val → 0 .next → { .val → 8 Last → { .val → 5 .next → None \begin{aligned}{\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ \text{.next} \to &\begin{cases}\text{.val} \to &8 \\ {\color{red}\boxed{\text{Last}}} \to &\begin{cases}\text{.val} \to &5 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases}\end{cases} \end{cases} \end{aligned} Pre.val.next0.valLast8{.val.next5None

output = prenode.next

Pre → { .val → 0 .next → { .val → 8 Last → { .val → 5 .next → None \begin{aligned}{\color{blue}\boxed{\text{Pre}}} \to \begin{cases}\text{.val} \to &0 \\ {\color{blue}\text{.next}} \to &\begin{cases}\text{.val} \to &8 \\ {\color{red}\boxed{\text{Last}}} \to &\begin{cases}\text{.val} \to &5 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases}\end{cases} \end{cases} \end{aligned} Pre.val.next0.valLast8{.val.next5None

Output → { .val → 8 .next → { .val → 5 .next → None \begin{aligned}{\color{blue}\boxed{\text{Output}}}\to \begin{cases}\text{.val} \to & 8 \\ \text{.next}\to &\begin{cases}\text{.val} \to &5 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases} \end{cases} \end{aligned} Output.val.next8{.val.next5None

def generateNext(l: list) -> ToNext:
    prenode = ToNext(0)
    lastnode = prenode
    for val in l:
        lastnode.next = ToNext(val)
        lastnode = lastnode.next
    return prenode.next
output = generateNext([1,2,3])

Output → { .val → 1 .next → { .val → 2 .next → { .val → 3 .next → None \begin{aligned}{\color{blue}\boxed{\text{Output}}}\to \begin{cases}\text{.val} \to & 1 \\ \text{.next}\to &\begin{cases}\text{.val} \to &2 \\ \text{.next} \to &\begin{cases}\text{.val} \to &3 \\ \text{.next} \to &{\color{green}\text{None}}\end{cases}\end{cases} \end{cases} \end{aligned} Output.val.next1.val.next2{.val.next3None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值