File tree Expand file tree Collapse file tree 2 files changed +88
-1
lines changed
src/com/blankj/study/temp Expand file tree Collapse file tree 2 files changed +88
-1
lines changed Original file line number Diff line number Diff line change 3
3
import com .blankj .study .base .BinaryTreeNode ;
4
4
5
5
import java .util .LinkedList ;
6
+ import java .util .Stack ;
6
7
7
8
8
9
/**
9
- * 二叉树层序遍历
10
+ * 二叉树遍历
10
11
*/
11
12
public class Test04 {
12
13
public static void main (String [] args ) {
@@ -22,11 +23,15 @@ public static void main(String[] args) {
22
23
tree1 .setRchild (tree4 );
23
24
tree2 .setLchild (tree5 );
24
25
26
+ System .out .println ("BFS" );
25
27
bfs (tree );
26
28
29
+ System .out .println ("DFS" );
30
+ dfs (tree );
27
31
28
32
}
29
33
34
+ // 广度优先(层序)遍历
30
35
public static void bfs (BinaryTreeNode node ) {
31
36
if (node == null ) {
32
37
return ;
@@ -47,4 +52,27 @@ public static void bfs(BinaryTreeNode node) {
47
52
}
48
53
}
49
54
}
55
+
56
+ public static void dfs (BinaryTreeNode node ){
57
+ if (node == null ) {
58
+ return ;
59
+ }
60
+ Stack <BinaryTreeNode > stack = new Stack ();
61
+ stack .push (node );
62
+
63
+ while (!stack .isEmpty ()) {
64
+ BinaryTreeNode tmp = stack .pop ();
65
+ System .out .println (tmp .getData ());
66
+
67
+ if (tmp .getRchild () != null ) {
68
+ stack .push (tmp .getRchild ());
69
+ }
70
+
71
+ if (tmp .getLchild () != null ) {
72
+ stack .push (tmp .getLchild ());
73
+ }
74
+
75
+
76
+ }
77
+ }
50
78
}
Original file line number Diff line number Diff line change
1
+ package com .blankj .study .temp ;
2
+
3
+ import com .blankj .study .base .Node ;
4
+
5
+ /**
6
+ * 翻转链表
7
+ */
8
+ public class Test05 {
9
+
10
+ public static void main (String [] args ){
11
+ Node head = new Node ("head" );
12
+ Node node1 = new Node ("1" );
13
+ Node node2 = new Node ("2" );
14
+ Node node3 = new Node ("3" );
15
+ Node node4 = new Node ("4" );
16
+ Node node5 = new Node ("5" );
17
+
18
+ head .setNext (node1 );
19
+ node1 .setNext (node2 );
20
+ node2 .setNext (node3 );
21
+ node3 .setNext (node4 );
22
+ node4 .setNext (node5 );
23
+ node5 .setNext (null );
24
+
25
+ say (head );
26
+ System .out .println ("reverse" );
27
+
28
+ Node reverse = reverseList (head );
29
+ say (reverse );
30
+
31
+
32
+ }
33
+
34
+ public static void say (Node node ){
35
+ if (node ==null ){
36
+ return ;
37
+ }
38
+
39
+ while (node .getNext ()!=null ){
40
+ System .out .println (node .getData ());
41
+ node = node .getNext ();
42
+ }
43
+ }
44
+
45
+ public static Node reverseList (Node head ){
46
+ Node pre = null ;
47
+ Node next = null ;
48
+
49
+ while (head !=null ){
50
+ next = head .getNext ();
51
+ head .setNext (pre );
52
+ pre = head ;
53
+ head = next ;
54
+ }
55
+
56
+ return pre ;
57
+ }
58
+
59
+ }
You can’t perform that action at this time.
0 commit comments