8000 tree questions · Ismail0290/DSA-Bootcamp-Java@ffbe275 · GitHub
[go: up one dir, main page]

Skip to content

Commit ffbe275

Browse files
tree questions
1 parent c63b4b0 commit ffbe275

File tree

2 files changed

+110
-0
lines changed

2 files changed

+110
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
public class DoubleLinkedList {
2+
LLNode head;
3+
LLNode tail;
4+
5+
public TreeNode convert(TreeNode root) {
6+
if (root == null) {
7+
return null;
8+
}
9+
10+
helper(root);
11+
12+
return head;
13+
}
14+
15+
private void helper(TreeNode node) {
16+
if(node == null) {
17+
return null;
18+
}
19+
20+
helper(node.left);
21+
22+
23+
LLNode newNode = new LLNode(node.val);
24+
25+
if(head == null) {
26+
head = newNode;
27+
tail = newNode;
28+
} else {
29+
tail.next = newNode;
30+
newNode.prev = tail;
31+
tail = newNode;
32+
}
33+
34+
helper(node.right);
35+
36+
}
37+
}
38+
39+
class LLNode {
40+
int val;
41+
LLNode prev;
42+
LLNode next;
43+
44+
public LLNode (int val) {
45+
this.val = val;
46+
}
47+
}
48+
49+
class TreeNode {
50+
int val;
51+
TreeNode left;
52+
TreeNode right;
53+
54+
public TreeNode (int val) {
55+
this.val = val;
56+
}
57+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import java.util.*;
2+
3+
class Node {
4+
int val;
5+
Node left;
6+
Node right;
7+
public Node (int val) {
8+
this.val = val;
9+
}
10+
}
11+
12+
public class TwoNodeSwap {
13+
Node first;
14+
Node second;
15+
Node prev;
16+
17+
public void helper(Node root) {
18+
iot(root);
19+
20+
// swap
21+
int temp = first.val;
22+
first.val = second.val;
23+
second.val = temp;
24+
}
25+
26+
private void iot(Node node) {
27+
if(node == null) {
28+
return;
29+
}
30+
31+
iot(node.left);
32+
33+
if(prev != null && prev.val > node.val) {
34+
if(first == null) {
35+
first = prev;
36+
}
37+
second = node;
38+
}
39+
40+
prev = node;
41+
42+
iot(node.right);
43+
}
44+
45+
public void printIOT(Node node) {
46+
if(node == null) {
47+
return;
48+
}
49+
printIOT(node.left);
50+
System.out.print(node.val + " ");
51+
printIOT(node.right);
52+
}
53+
}

0 commit comments

Comments
 (0)
0