设p为单链表中如图所示的指针。
以下赋值语句有什么作用?
q: = p → next
p → next:= q → next
q → next:=(q → next) → next
(p → next) → next:= q
回答:
解释:最初 p 指向 i,q 指向 i+1。
- p ->next:= q ->next : i next 指向 i+2
- q ->next:=(q ->next) ? next : i+1 next 指向 i+3
- (p ->next) ->next:= q : i+2 next 指向 i+1
最后推导出 i->i+2->i+1->i+3。
因此,它交换链表中 p 旁边的两个节点。
这个问题的测验