@fengjingchao 
How about
```go
for {
        neighbor = r.popSccStack()
        r.sccResult.PushBack(neighbor)
        if node.Equal(neighbor) {
                break
        }
}
```
And `Equal` is something like:
```go
func (i *Instance) Equal(other *Instance) {
        return (i.rowId == other.rowId) && (i.id == other.id)
}
```

But I think maybe `Equal` is not a good function name. What's you opinion?