leetcode第24题两两交换链表中的节点
注意的点:
- 再循环的过程中,一定是需要注意迭代的条件每次都是需要进行调整的
- 递归的话,就是要注意递归的顺序,对当前域的操作一定是要放在递归函数之前的.
func swapPairs(head *ListNode) *ListNode {
if head == nil{
return head
}
//目前为止,难度还算是可以接受
pre := &ListNode{Next : head}
temp := pre;
for temp.Next != nil && temp.Next.Next != nil{
start := temp.Next
end := temp.Next.Next
temp.Next = end
start.Next = end.Next
end.Next = start;
temp = start
}
return pre.Next
}
func swapPairs(head *ListNode) *ListNode {
if head == nil || head.Next == nil{
return head
}
next := head.Next
head.Next = swapPairs(next.Next)
next.Next = head;
return next;
}