Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
java-data-algorithm
提交
7f72d386
J
java-data-algorithm
项目概览
门心叼龙
/
java-data-algorithm
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
java-data-algorithm
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7f72d386
编写于
8月 07, 2019
作者:
门心叼龙
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
code prefext
上级
2e861b05
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
129 addition
and
5 deletion
+129
-5
.idea/caches/build_file_checksums.ser
.idea/caches/build_file_checksums.ser
+0
-0
.idea/misc.xml
.idea/misc.xml
+1
-1
testlib/src/main/java/temp/Test20190805_ListNode.java
testlib/src/main/java/temp/Test20190805_ListNode.java
+128
-4
未找到文件。
.idea/caches/build_file_checksums.ser
浏览文件 @
7f72d386
无法预览此类型文件
.idea/misc.xml
浏览文件 @
7f72d386
...
...
@@ -35,7 +35,7 @@
</value>
</option>
</component>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_
8
"
project-jdk-name=
"1.8"
project-jdk-type=
"JavaSDK"
>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_
7
"
project-jdk-name=
"1.8"
project-jdk-type=
"JavaSDK"
>
<output
url=
"file://$PROJECT_DIR$/build/classes"
/>
</component>
<component
name=
"ProjectType"
>
...
...
testlib/src/main/java/temp/Test20190805_ListNode.java
浏览文件 @
7f72d386
package
temp
;
import
java.util.List
;
/**
* Description: <Test20190805_ListNode><br>
* Author:
mxdl<br>
* Date:
2019/8/5<br>
* Version:
V1.0.0<br>
* Update:
<br>
* Author: mxdl<br>
* Date: 2019/8/5<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public
class
Test20190805_ListNode
{
// 1.判断链表有没有环
public
static
boolean
isListNodeRing
(
ListNode
listNode
)
{
ListNode
slowNode
=
listNode
;
ListNode
fastNode
=
listNode
;
while
(
fastNode
.
next
!=
null
)
{
slowNode
=
slowNode
.
next
;
fastNode
=
fastNode
.
next
.
next
;
if
(
slowNode
==
fastNode
)
{
return
true
;
}
}
return
false
;
}
// 2.判断链表有没有环,有环则找到链表的入口节点
public
static
ListNode
getRinigEntry
(
ListNode
listNode
)
{
ListNode
slowNode
=
listNode
;
ListNode
fastNode
=
listNode
;
boolean
isring
=
false
;
while
(
fastNode
.
next
!=
null
)
{
slowNode
=
slowNode
.
next
;
fastNode
=
fastNode
.
next
.
next
;
if
(
slowNode
==
fastNode
)
{
isring
=
true
;
break
;
}
}
if
(!
isring
)
{
return
null
;
}
fastNode
=
listNode
;
while
(
slowNode
!=
fastNode
)
{
slowNode
=
slowNode
.
next
;
fastNode
=
fastNode
.
next
;
}
return
fastNode
;
}
// 3.翻转一个链表
public
static
ListNode
reversListNode
(
ListNode
listNode
)
{
ListNode
reversNode
=
null
;
ListNode
currNode
=
listNode
;
ListNode
preNdoe
=
null
;
while
(
currNode
!=
null
)
{
ListNode
nextNode
=
currNode
.
next
;
if
(
nextNode
==
null
)
{
reversNode
=
currNode
;
}
currNode
.
next
=
preNdoe
;
preNdoe
=
currNode
;
currNode
=
nextNode
;
}
return
reversNode
;
}
// 4.删除链表的倒数第n个节点
public
static
ListNode
deleteListNode
(
ListNode
listNode
,
int
n
)
{
ListNode
pa
=
listNode
;
ListNode
pb
=
listNode
;
int
i
=
1
;
while
(
i
<=
n
)
{
pa
=
pa
.
next
;
i
++;
}
while
(
pa
.
next
!=
null
)
{
pa
=
pa
.
next
;
pb
=
pb
.
next
;
}
pb
.
next
=
pb
.
next
.
next
;
return
listNode
;
}
// 5.合并两个有序链表
public
static
ListNode
mergeListNode
(
ListNode
pa
,
ListNode
pb
)
{
ListNode
listNode
=
new
ListNode
(
0
);
ListNode
currNode
=
listNode
;
while
(
pa
!=
null
&&
pb
!=
null
)
{
if
(
pa
.
val
>
pb
.
val
)
{
currNode
.
next
=
pb
;
pb
=
pb
.
next
;
}
else
{
currNode
.
next
=
pa
;
pa
=
pa
.
next
;
}
currNode
=
currNode
.
next
;
}
currNode
.
next
=
pa
!=
null
?
pa
:
pb
;
return
listNode
.
next
;
}
public
static
void
main
(
String
[]
args
)
{
ListNode
listNode
=
new
ListNode
(
1
);
ListNode
listNode1
=
new
ListNode
(
3
);
ListNode
listNod2
=
new
ListNode
(
5
);
ListNode
listNode3
=
new
ListNode
(
2
);
ListNode
listNode4
=
new
ListNode
(
4
);
ListNode
listNode5
=
new
ListNode
(
6
);
listNode
.
next
=
listNode1
;
listNode1
.
next
=
listNod2
;
listNode3
.
next
=
listNode4
;
listNode4
.
next
=
listNode5
;
// listNode4.next = listNode3;
// boolean isRing = isListNodeRing(listNode);
// System.out.println("isRing:"+isRing);
// ListNode rinigEntry = getRinigEntry(listNode);
// System.out.println("entry:"+(rinigEntry != null ? rinigEntry.val:" is null"));
// ListNode reversNode = reversListNode(listNode);
// while(reversNode != null){
// System.out.println("val:"+reversNode.val);
// reversNode = reversNode.next;
// }
ListNode
reversNode
=
mergeListNode
(
listNode
,
listNode3
);
while
(
reversNode
!=
null
)
{
System
.
out
.
println
(
"val:"
+
reversNode
.
val
);
reversNode
=
reversNode
.
next
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录