File tree Expand file tree Collapse file tree 3 files changed +90
-0
lines changed
kth-smallest-element-in-a-bst
lowest-common-ancestor-of-a-binary-search-tree Expand file tree Collapse file tree 3 files changed +90
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * public class TreeNode {
4+ * int val;
5+ * TreeNode left;
6+ * TreeNode right;
7+ * TreeNode() {}
8+ * TreeNode(int val) { this.val = val; }
9+ * TreeNode(int val, TreeNode left, TreeNode right) {
10+ * this.val = val;
11+ * this.left = left;
12+ * this.right = right;
13+ * }
14+ * }
15+ */
16+ class Solution {
17+ int cnt = 0 ;
18+ int result = 0 ;
19+
20+ public int kthSmallest (TreeNode root , int k ) {
21+ cnt = k ;
22+ traverseInOrder (root );
23+ return result ;
24+ }
25+
26+ public void traverseInOrder (TreeNode node ) {
27+ if (node == null ) return ;
28+
29+ if (node .left != null ) traverseInOrder (node .left );
30+ cnt --;
31+ if (cnt == 0 ) {
32+ result = node .val ;
33+ return ;
34+ }
35+ if (node .right != null ) traverseInOrder (node .right );
36+ }
37+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * public class TreeNode {
4+ * int val;
5+ * TreeNode left;
6+ * TreeNode right;
7+ * TreeNode(int x) { val = x; }
8+ * }
9+ */
10+
11+ class Solution {
12+ public TreeNode lowestCommonAncestor (TreeNode root , TreeNode p , TreeNode q ) {
13+ if (root .val == p .val || root .val == q .val ) return root ;
14+
15+ if (p .val < root .val && q .val < root .val ) {
16+ return lowestCommonAncestor (root .left , p , q );
17+ } else if (p .val > root .val && q .val > root .val ) {
18+ return lowestCommonAncestor (root .right , p , q );
19+ } else {
20+ return root ;
21+ }
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition of Interval:
3+ * public class Interval {
4+ * int start, end;
5+ * Interval(int start, int end) {
6+ * this.start = start;
7+ * this.end = end;
8+ * }
9+ * }
10+ */
11+
12+ public class Solution {
13+ /**
14+ * @param intervals: an array of meeting time intervals
15+ * @return: if a person could attend all meetings
16+ */
17+ public boolean canAttendMeetings (List <Interval > intervals ) {
18+ // Write your code here
19+ intervals .sort ((a , b ) -> a .start - b .start ); // sort by start time
20+
21+ int prevEndTime = 0 ;
22+ for (Interval meeting : intervals ) {
23+ if (meeting .start < prevEndTime ) {
24+ return false ;
25+ }
26+ prevEndTime = meeting .end ;
27+ }
28+ return true ;
29+ }
30+ }
You can’t perform that action at this time.
0 commit comments