mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Merge pull request #1457 from LIU-HONGYANG/hongyangliu.add-solution
refactor: add golang solution to Intersection of Two Linked Lists LCCI
This commit is contained in:
@ -13,21 +13,21 @@
|
||||
|
||||
图示两个链表在节点 c1 开始相交:
|
||||
|
||||

|
||||

|
||||
|
||||
题目数据 保证 整个链式结构中不存在环。
|
||||
|
||||
注意,函数返回结果后,链表必须 保持其原始结构 。
|
||||
注意,函数返回结果后,链表必须 保持其原始结构 。
|
||||
|
||||
示例 1:
|
||||
示例 1:
|
||||
|
||||

|
||||

|
||||
|
||||
示例 2:
|
||||
|
||||

|
||||

|
||||
|
||||
示例 3:
|
||||
示例 3:
|
||||
|
||||

|
||||
|
||||
@ -100,7 +100,7 @@ public:
|
||||
## 其他语言版本
|
||||
|
||||
|
||||
### Java
|
||||
### Java
|
||||
```Java
|
||||
public class Solution {
|
||||
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
|
||||
@ -144,11 +144,11 @@ public class Solution {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
### Python
|
||||
### Python
|
||||
```python
|
||||
|
||||
class Solution:
|
||||
@ -162,15 +162,15 @@ class Solution:
|
||||
"""
|
||||
cur_a, cur_b = headA, headB # 用两个指针代替a和b
|
||||
|
||||
|
||||
|
||||
while cur_a != cur_b:
|
||||
cur_a = cur_a.next if cur_a else headB # 如果a走完了,那么就切换到b走
|
||||
cur_b = cur_b.next if cur_b else headA # 同理,b走完了就切换到a
|
||||
|
||||
|
||||
return cur_a
|
||||
```
|
||||
|
||||
### Go
|
||||
### Go
|
||||
|
||||
```go
|
||||
func getIntersectionNode(headA, headB *ListNode) *ListNode {
|
||||
@ -208,7 +208,30 @@ func getIntersectionNode(headA, headB *ListNode) *ListNode {
|
||||
}
|
||||
```
|
||||
|
||||
### javaScript
|
||||
双指针
|
||||
|
||||
```go
|
||||
func getIntersectionNode(headA, headB *ListNode) *ListNode {
|
||||
l1,l2 := headA, headB
|
||||
for l1 != l2 {
|
||||
if l1 != nil {
|
||||
l1 = l1.Next
|
||||
} else {
|
||||
l1 = headB
|
||||
}
|
||||
|
||||
if l2 != nil {
|
||||
l2 = l2.Next
|
||||
} else {
|
||||
l2 = headA
|
||||
}
|
||||
}
|
||||
|
||||
return l1
|
||||
}
|
||||
```
|
||||
|
||||
### javaScript
|
||||
|
||||
```js
|
||||
var getListLen = function(head) {
|
||||
@ -218,9 +241,9 @@ var getListLen = function(head) {
|
||||
cur = cur.next;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
}
|
||||
var getIntersectionNode = function(headA, headB) {
|
||||
let curA = headA,curB = headB,
|
||||
let curA = headA,curB = headB,
|
||||
lenA = getListLen(headA),
|
||||
lenB = getListLen(headB);
|
||||
if(lenA < lenB) {
|
||||
|
Reference in New Issue
Block a user