mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-05 00:25:22 +08:00
38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package structures
|
|
|
|
// NestedInteger is the interface that allows for creating nested lists.
|
|
// You should not implement it, or speculate about its implementation
|
|
type NestedInteger struct {
|
|
Num int
|
|
Ns []*NestedInteger
|
|
}
|
|
|
|
// IsInteger Return true if this NestedInteger holds a single integer, rather than a nested list.
|
|
func (n NestedInteger) IsInteger() bool {
|
|
return n.Ns == nil
|
|
}
|
|
|
|
// GetInteger Return the single integer that this NestedInteger holds, if it holds a single integer
|
|
// The result is undefined if this NestedInteger holds a nested list
|
|
// So before calling this method, you should have a check
|
|
func (n NestedInteger) GetInteger() int {
|
|
return n.Num
|
|
}
|
|
|
|
// SetInteger Set this NestedInteger to hold a single integer.
|
|
func (n *NestedInteger) SetInteger(value int) {
|
|
n.Num = value
|
|
}
|
|
|
|
// Add Set this NestedInteger to hold a nested list and adds a nested integer to it.
|
|
func (n *NestedInteger) Add(elem NestedInteger) {
|
|
n.Ns = append(n.Ns, &elem)
|
|
}
|
|
|
|
// GetList Return the nested list that this NestedInteger holds, if it holds a nested list
|
|
// The list length is zero if this NestedInteger holds a single integer
|
|
// You can access NestedInteger's List element directly if you want to modify it
|
|
func (n NestedInteger) GetList() []*NestedInteger {
|
|
return n.Ns
|
|
}
|