## TABLE OF CONTENTS

### 01. HEADLINES

### 02. SPONSOR

### 03. RECAP

### 04. PERL REVIEW

### 05. RAKU REVIEW

### 06. CHART

### 07. NEW MEMBERS

### 08. GUESTS

### 09. TASK #1: Root Distance

### 10. TASK #2: Add Linked Lists

## HEADLINES

Welcome to the week 129 and it is time to declare the champion and the winner is `Jorg Sommrey`

currently ranked `28th`

in the leaderboard with `141`

contributions in **Perl** and a blog so far.

Last week was not so busy, still I am grateful to everyone who contributed to the weekly challenge. I am still not in the frame yet. Sorry.

Next week, insha-ALLAH.

### Blogs with Creative Title

#### 1. With Raku to Mom’s platform by Arne Sommer.

#### 2. MinMaxing Matrix Platforms by Dave Jacoby.

#### 3. Maxima and Minima by Roger Bell_West.

Let us share some interesting stats from the **GitHub repository**.

#### 1. Commits: 19,742 (+126)

#### 2. Pull Requests: 4,842 (+30)

#### 3. Contributors: 176

#### 4. Fork: 222

#### 5. Stars: 103 (+3)

Last but not least, I would like to thank each and every member for their support and encouragement.

## SPONSOR

Our solo sponsor `Pete Sergeant`

has been a great support to keep us motivated. We are lucky that he agreed to continue the journey with us in the year 2021. I would like to personally thank **Pete** and his entire team for their generosity. It would be great if we could add few more to sponsor the prize money so that we could go back and declare weekly champions as we have done in the past. I hope and wish this will become possible in 2021. The amount doesn’t have to be huge. However, it would be nice to show off bunch of supporters. If an organisation comes forward and supports us then that would be the ultimate achievement.

## RECAP

Quick recap of **“The Weekly Challenge - 128”** by `Mohammad S Anwar`

.

## PERL REVIEW

Please check out **Perl** solutions review of the **“The Weekly Challenge - 126”** by `Colin Crain`

.

If you missed any past reviews then please check out the **collection**.

## RAKU REVIEW

If you missed any past reviews then please check out the **collection**.

## CHART

Please take a look at the **charts** showing interesting data.

I would like to `THANK`

every member of the team for their valuable suggestions. Please do share your experience with us.

## NEW MEMBERS

Please find out **How to contribute?**, if you have any doubts.

Please try the excellent tool **EZPWC** created by respected member `Saif Ahmed`

of **Team PWC**.

## GUESTS

Please checkout the guest contributions for the **Week #128**.

Please find **past solutions** by respected **guests**. Please share your creative solutions in other languages.

## TASK #1 › Root Distance

**Submitted by:** Mohammad S Anwar

You are given a tree and a node of the given tree.

Write a script to find out the distance of the given node from the root.

## Example 1:

```
Tree:
1
/ \
2 3
\
4
/ \
5 6
Node: 6
Output: 3 as the distance of given node 6 from the root (1).
Node: 5
Output: 3
Node: 2
Output: 1
Node: 4
Output: 2
```

## Example 2:

```
Tree:
1
/ \
2 3
/ \
4 5
\ /
6 7
/ \
8 9
Node: 7
Output: 3 as the distance of given node 6 from the root (1).
Node: 8
Output: 4
Node: 6
Output: 3
```

## TASK #2 › Add Linked Lists

**Submitted by:** Mohammad S Anwar

You are given two linked list having single digit positive numbers.

Write a script to add the two linked list and create a new linked representing the sum of the two linked list numbers. The two linked lists may or may not have the same number of elements.

#### HINT: Just a suggestion, feel free to come up with your own unique way to deal with the task. I am expecting a class representing linked list. It should have methods to create a linked list given list of single digit positive numbers and a method to add new member. Also have a method that takes 2 linked list objects and returns a new linked list. Finally a method to print the linked list object in a user friendly format.

## Example 1:

```
Input: L1 = 1 -> 2 -> 3
L2 = 3 -> 2 -> 1
Output: 4 -> 4 -> 4
Operation: Pick the first rightmost element of L1 i.e. 3 and adds to the first rightmost element of L2 i.e. 1. Finally store the result i.e. 3 in the new linked list. Move to the next one of both linked lists L1 and L2, perform the same operation. In case the sum >= 10 then you apply the same rule you would do to regular addition problem i.e. divide the sum by 10 keep the remainder and push to the new linked list. Don't forget to carry, 1, to the next operation. In case one linked list is smaller than the other, you can safely assume it is 0.
```

## Example 2:

```
Input: L1 = 1 -> 2 -> 3 -> 4 -> 5
L2 = 6 -> 5 -> 5
Output: 1 -> 3 -> 0 -> 0 -> 0
Operations:
a) 1st member of L1 = 5 and 1st member of L2 = 5
b) 5 + 5 = 10
c) 0 pushed to the new linked list.
d) carry forward 1.
e) 2nd member of L1 = 4 and 2nd member of L2 = 5
f) 4 + 5 + 1 (carry) = 10
h) 0 again pushed to the new linked list.
i) carry forward 1.
j) 3rd member of L1 = 3 and 3rd member of L2 = 6
k) 3 + 6 + 1 (carry) = 10
l) 0 pushed to the new linked list.
m) carry forward 1.
n) 4th member of L1 = 2 and assume 0 as the 4th member of L2 since there are only 3 members.
o) 2 + 1 (carry) = 3
p) 3 pushed to the new linked list.
q) 5th member of L1 = 1 and assume 0 as the 5th member of L2 since there are only 3 members.
r) 1 + 0 = 1
s) 1 pushed to the new linked list.
So the new linked list now have: 1 -> 3 -> 0 -> 0 -> 0.
The above suggestion is one way, not necessarily the best way to deal with it.
```

Last date to submit the solution **23:59 (UK Time) Sunday 12th September 2021**.