John4jobs
BAN USER- 0of 0 votes
Answersarista-networks-interview-questions
- John4jobs in United States
0
of 0 votes
0
Answers
Write findMin, findNext of BST tree node has parent and write PrintBST using above two
arista-networks-interview-questions
0
of 0 votes
0
Answers
Write findMin, findNext of BST tree node has parent pointer also.
void printBST(TreeNodep root) {
TreeNodep temp , next;
temp = findMin(root);
while (1) {
printf("%d",temp->value);
next = findNext(temp);
if (!next)
return;
printf("%d",next->value);
temp = next;
}
}| Report Duplicate | Flag | PURGE
Arista Networks Developer Program Engineer - 0of 0 votes
AnswerWrite findMin, findNext of BST tree node has parent pointer also. http://www.geeksforgeeks.org/find-the-minimum-element-in-a-binary-search-tree/
- John4jobs in United States
http://www.geeksforgeeks.org/inorder-successor-in-binary-search-tree/| Report Duplicate | Flag | PURGE
Arista Networks Developer Program Engineer Data Structures - 0of 0 votes
AnswersReverse Linked List
- John4jobs in United States| Report Duplicate | Flag | PURGE
Fungible Developer Program Engineer C
Reverse both linked lists and traverse from end maintain carry
ListNode *reverse(ListNode *head) {
Node *curr = head;
Node *temp, *result;
temp = result = NULL;
while (curr) {
temp = curr->next;
curr->next = result;
result = curr;
curr = temp;
}
return result;
}
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
Node *tf = reverse(l1);
Node *ts = reverse(l2);
Node dummy;
Node *result = &dummy;
int carry =0,sum=0;
while (tf || ts || carry) {
sum = carry;
if (tf) {
sum += tf->data;
tf = tf->next;
}
if (ts) {
sum += ts->data;
ts = ts->next;
}
result->next = new Node(sum % 10);
carry = sum/10;
result = result->next;
}
return (reverse(dummy.next));
}
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
- John4jobs April 13, 2017Node *tf = reverse(l1);
Node *ts = reverse(l2);
Node dummy;
Node *result = &dummy;
int carry =0,sum=0;
while (tf || ts || carry) {
sum = carry;
if (tf) {
sum += tf->data;
tf = tf->next;
}
if (ts) {
sum += ts->data;
ts = ts->next;
}
result->next = new Node(sum % 10);
carry = sum/10;
result = result->next;
}
return (reverse(dummy.next));
}
ListNode *reverse(ListNode *head) {
Node *curr = head;
Node *temp, *result;
temp = result = NULL;
while (curr) {
temp = curr->next;
curr->next = result;
result = curr;
curr = temp;
}
return result;
}