leetcode listnode 格式化

前言

之前在 leetcode 刷题,刷到几题关于列表的,由于结果不好展示,所以加了个格式化的方法

格式化

Python

在 python 中,有很多魔法方法,其中str是和 print 有关的, 当一个类实现了str方法,调用 print 打印的时候会使用到。

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

    def __str__(self):
        res = []
        while self:
            res.append(self.val)
            self = self.next
        s = map(str, res)
        return "->".join(s)

使用方法:

# linked-list 2 -> 4 -> 3
l11 = ListNode(2)
l12 = ListNode(4)
l13 = ListNode(3)
l11.next = l12
l12.next = l13
print(l11)
# 2->4->3

最后,提一下repr,这个一般用来展示类的信息

Golang

只要一个结构体实现了 String 方法,在 fmt.Println 调用时就可以看到效果

type ListNode struct {
	Val  int
	Next *ListNode
}

func (l *ListNode) String() string {
	res := []string{}
	for l != nil {
		res = append(res, strconv.Itoa(l.Val))
		l = l.Next
	}
	return strings.Join(res, "->")
    }

func main() {
	l11 := &ListNode{Val: 2}
	l12 := &ListNode{Val: 4}
	l13 := &ListNode{Val: 3}
	l11.Next = l12
	l12.Next = l13

	fmt.Println(l11)
}
// 2->4->3

结果也是 2->4->3

Reference

© 2025 · Built with Gatsby