File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed
leetcode/src/main/java/com/mistray/tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change 1+ package com .mistray .tree ;
2+
3+ import java .util .ArrayList ;
4+ import java .util .LinkedList ;
5+
6+ /**
7+ * @author ZJY(MistRay)
8+ * @Project algorithm-study
9+ * @Package com.mistray.tree
10+ * @create 2020年03月05日 14:02
11+ * @Desc
12+ */
13+ public class FlattenBinaryTreeToLinkedList114 {
14+
15+ public void flatten (TreeNode root ) {
16+ if (root == null ) {
17+ return ;
18+ }
19+ LinkedList <TreeNode > list = new LinkedList <>();
20+ dsf (root , list );
21+ TreeNode head = list .removeFirst ();
22+ head .left = null ;
23+ while (list .size () > 0 ) {
24+ TreeNode cur = list .removeFirst ();
25+ cur .left = null ;
26+ head .right = cur ;
27+ head = cur ;
28+ }
29+
30+ }
31+
32+ public void flatten2 (TreeNode root ) {
33+ contrary (root );
34+ }
35+
36+
37+ TreeNode pre = null ;
38+
39+ public void contrary (TreeNode root ) {
40+ if (root == null ) {
41+ return ;
42+ }
43+ contrary (root .right );
44+ contrary (root .left );
45+ root .left = null ;
46+ root .right = pre ;
47+ pre = root ;
48+ }
49+
50+
51+ public void dsf (TreeNode node , LinkedList <TreeNode > list ) {
52+ if (node == null ) {
53+ return ;
54+ }
55+ list .add (node );
56+ dsf (node .left , list );
57+ dsf (node .right , list );
58+ }
59+
60+ }
You can’t perform that action at this time.
0 commit comments