Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ad5b89b

Browse files
Added node swap question
1 parent a92f296 commit ad5b89b

File tree

1 file changed

+36
-0
lines changed
  • coding_solutions/DataStructure_related/LinkedList

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
# Problem: Swap two node in linkedlist
3+
def swap_nodes(self, key1, key2):
4+
if key1 == key2:
5+
return
6+
7+
prev_1 = None
8+
curr_1 = self.head
9+
while curr_1.next and curr_1.data != key1:
10+
prev_1 = curr_1
11+
curr_1 = curr_1.next
12+
13+
prev_2 = None
14+
curr_2 = self.head
15+
while curr_2.next and curr_2.data != key2:
16+
prev_2 = curr_2
17+
curr_2 = curr_2.next
18+
19+
if not curr_1 or not curr_2:
20+
return
21+
22+
23+
# if curr_1 is head
24+
if prev_1:
25+
prev_1.next = curr_2
26+
else:
27+
self.head = curr_2
28+
29+
# if curr_2 is head
30+
if prev_2:
31+
prev_2.next = curr_1
32+
else:
33+
self.head = curr_1
34+
35+
curr_1.next, curr_2.next = curr_2.next, curr_1.next
36+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /