From 2259241b533872681d196a7bf56959fd0c87d67f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sat, 4 May 2019 18:16:20 +0800 Subject: [PATCH 1/6] 111 --- "ArrayAndLink/\345\256\266_206.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "ArrayAndLink/\345\256\266_206.md" diff --git "a/ArrayAndLink/\345\256\266_206.md" "b/ArrayAndLink/\345\256\266_206.md" new file mode 100644 index 0000000..d5ccbe9 --- /dev/null +++ "b/ArrayAndLink/\345\256\266_206.md" @@ -0,0 +1,16 @@ +``` +/** + * 作者:家 + * 思路:新建一个空节点,在遍历的过程中不断赋值为当前节点,从而达到获取当前节点上一个节点的作用。 + * 时间复杂度:O(n) + * 空间复杂度:O(1) + */ +func reverseList(head *ListNode) *ListNode { + var prev *ListNode + for head != nil { + //不断地将当前节点的Next赋值为上一个节点 + head.Next,head,prev = prev,head.Next,head + } + return prev +} +``` \ No newline at end of file -- Gitee From 6905daac3732d9030519bc75fb9f9941c0a88f06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sat, 4 May 2019 18:18:40 +0800 Subject: [PATCH 2/6] 111 --- "ArrayAndLink/\345\256\266_141.md" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "ArrayAndLink/\345\256\266_141.md" diff --git "a/ArrayAndLink/\345\256\266_141.md" "b/ArrayAndLink/\345\256\266_141.md" new file mode 100644 index 0000000..21271a2 --- /dev/null +++ "b/ArrayAndLink/\345\256\266_141.md" @@ -0,0 +1,16 @@ +``` +/** + * 作者:家 + * 思路:快指针每次前进两格,慢指针前进一格,能够相遇即可证明有环。 + * 时间复杂度:O(n) + * 空间复杂度:O(1) + */ + func hasCycle(head *ListNode) bool { + fast,slow := head,head + for fast != nil && fast.Next != nil { + slow, fast = slow.Next,fast.Next.Next + if slow == fast {return true} + } + return false +} +``` \ No newline at end of file -- Gitee From 55f59b091c693a63ac4af4028453a373e93d08ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sat, 4 May 2019 18:22:59 +0800 Subject: [PATCH 3/6] 111 --- "ArrayAndLink/\345\256\266_142.md" | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "ArrayAndLink/\345\256\266_142.md" diff --git "a/ArrayAndLink/\345\256\266_142.md" "b/ArrayAndLink/\345\256\266_142.md" new file mode 100644 index 0000000..8fbc3ee --- /dev/null +++ "b/ArrayAndLink/\345\256\266_142.md" @@ -0,0 +1,29 @@ +``` +/** + * 作者:家 + * 思路:快指针每次前进两格,慢指针前进一格,相遇之后将fast置为头结点和slow每次各自前进一格,再次相遇即为环的起始位置 + * 时间复杂度:O(n) + * 空间复杂度:O(1) + */ +func detectCycle(head *ListNode) *ListNode { + slow,fast:=head,head + for{ + if fast==nil||fast.Next==nil { + break; + } + slow, fast = slow.Next,fast.Next.Next + if slow==fast { + fast = head; + for{ + if(slow==fast){ + return slow + } + slow=slow.Next + fast=fast.Next + } + } + } + return nil + +} +``` \ No newline at end of file -- Gitee From 8b33f880a42fe9727364eea33472ad2912d8055a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sat, 4 May 2019 18:26:42 +0800 Subject: [PATCH 4/6] 111 --- "ArrayAndLink/\345\256\266_24.md" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "ArrayAndLink/\345\256\266_24.md" diff --git "a/ArrayAndLink/\345\256\266_24.md" "b/ArrayAndLink/\345\256\266_24.md" new file mode 100644 index 0000000..0b57f82 --- /dev/null +++ "b/ArrayAndLink/\345\256\266_24.md" @@ -0,0 +1,18 @@ +``` +/** + * 作者:家 + * 思路:遍历的同时注意链表的指向即可。 + * 时间复杂度:O(n) + * 空间复杂度:O(1) + */ + func swapPairs(head *ListNode) *ListNode { + newHead := new(ListNode) + newHead.Next = head + rHead := newHead + for rHead.Next != nil && rHead.Next.Next != nil { + rHead.Next,rHead.Next.Next,rHead.Next.Next.Next,rHead = rHead.Next.Next,rHead.Next.Next.Next,rHead.Next,rHead.Next + } + return newHead.Next + +} +``` \ No newline at end of file -- Gitee From dbd51ad9ed81148d2d0e8589a4bcbfcf56c4bf77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sun, 5 May 2019 15:47:26 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=AE=B6=5F142.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "ArrayAndLink/\345\256\266_142.md" | 1 + 1 file changed, 1 insertion(+) diff --git "a/ArrayAndLink/\345\256\266_142.md" "b/ArrayAndLink/\345\256\266_142.md" index 8fbc3ee..2959838 100644 --- "a/ArrayAndLink/\345\256\266_142.md" +++ "b/ArrayAndLink/\345\256\266_142.md" @@ -4,6 +4,7 @@ * 思路:快指针每次前进两格,慢指针前进一格,相遇之后将fast置为头结点和slow每次各自前进一格,再次相遇即为环的起始位置 * 时间复杂度:O(n) * 空间复杂度:O(1) + * 具体思路解释:https://blog.csdn.net/weixin_43315529/article/details/89847215 */ func detectCycle(head *ListNode) *ListNode { slow,fast:=head,head -- Gitee From fcdb1b68375aaaae3469160366bf3b8dedaa0024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=B1=89=E5=8D=BF?= <15176331678@163.com> Date: Sun, 5 May 2019 15:48:08 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E5=AE=B6=5F142.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "ArrayAndLink/\345\256\266_142.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/ArrayAndLink/\345\256\266_142.md" "b/ArrayAndLink/\345\256\266_142.md" index 2959838..007426d 100644 --- "a/ArrayAndLink/\345\256\266_142.md" +++ "b/ArrayAndLink/\345\256\266_142.md" @@ -1,10 +1,10 @@ +具体思路解释:https://blog.csdn.net/weixin_43315529/article/details/89847215 ``` /** * 作者:家 * 思路:快指针每次前进两格,慢指针前进一格,相遇之后将fast置为头结点和slow每次各自前进一格,再次相遇即为环的起始位置 * 时间复杂度:O(n) * 空间复杂度:O(1) - * 具体思路解释:https://blog.csdn.net/weixin_43315529/article/details/89847215 */ func detectCycle(head *ListNode) *ListNode { slow,fast:=head,head -- Gitee