let A and B be 2 linked list. Make a copy of A(say C)such that data part of a node in C keeps the pointer to the next node in A. Reverse B. Keep traversing A and C simultaneously. If at any point the data part of C and next node pointer of A are different, then that is the required node.
start comparing the addresses at the point where the lists are at the same height(in this case at value 9 and 10) that's at list1.length-list2.length index. O(n) time.
Given a Binary Tree, find vertical sum of the nodes that are in same vertical line. Print all sums through different vertical lines. Examples: 1 / \ 2 3 / \ / \ 4 5 6 7 The tree has 5 vertical lines Vertical-Line-1 has only one node 4 => vertical sum is 4 Vertical-Line-2: has only one node 2=> vertical sum is 2 Vertical-Line-3: has three nodes: 1,5,6 => vertical sum is 1+5+6 = 12 Vertical-Line-4: has only one node 3 => vertical sum is 3 Vertical-Line-5: has only one node 7 => vertical sum is 7 So expected output is 4, 2, 12, 3 and 7
let A and B be 2 linked list.
ReplyDeleteMake a copy of A(say C)such that data part of a node in C keeps the pointer to the next node in A.
Reverse B. Keep traversing A and C simultaneously. If at any point the data part of C and next node pointer of A are different, then that is the required node.
@jainendra try without using any extra space...
ReplyDeletestart comparing the addresses at the point where the lists are at the same height(in this case at value 9 and 10) that's at list1.length-list2.length index. O(n) time.
ReplyDeletecan you elaborate a little bit...
ReplyDelete