Hôm nay, tôi đã nghĩ đến việc giải một câu hỏi về N-ary Tree. Vì tôi chưa bao giờ giải câu hỏi N-ary Tree, nên tôi đã nghĩ đến việc bắt đầu với thứ gì đó được gắn thẻ dễ dàng trên leetcode. Hãy để chúng tôi xem xét câu hỏi mà không lãng phí nhiều thời gian
559. Độ sâu tối đa của cây N-ary
Cho một cây n-ary, tìm độ sâu tối đa của nó
Độ sâu tối đa là số nút dọc theo con đường dài nhất từ nút gốc xuống nút lá xa nhất
Tuần tự hóa đầu vào Nary-Tree được thể hiện theo thứ tự cấp độ của chúng, mỗi nhóm con được phân tách bằng giá trị null [Xem ví dụ]
ví dụ 1
Input: root = [1,null,3,2,4,null,5,6]
Output: 3
ví dụ 2
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
Hạn chế
- Độ sâu của cây n-ary nhỏ hơn hoặc bằng
02parent | | --------- | | child child
- Tổng số nút nằm trong khoảng từ
03parent | | --------- | | child child
Nếu câu hỏi này được hỏi cho Cây nhị phân, Tìm kiếm theo chiều rộng hoặc Tìm kiếm theo chiều sâu sẽ là thuật toán được sử dụng. Chúng ta có thể thử sử dụng logic tương tự cho Cây N-ary không?
Chúng tôi sẽ sử dụng phương pháp tìm kiếm theo chiều rộng đầu tiên để giải quyết vấn đề này
Chúng tôi sẽ cần một hàng đợi sẽ lưu trữ các nút có nút con mà chúng tôi cần truy cập tiếp theo. Chúng tôi sẽ sử dụng một hàng đợi khác sẽ theo dõi tất cả con của các nút ở một cấp độ cụ thể. Mỗi khi chúng tôi đạt đến một cấp độ mới, biến theo dõi độ sâu sẽ được tăng lên
Đợi đã, làm thế nào để chúng ta theo dõi trẻ em? . Hãy để chúng tôi nhìn vào đoạn mã
class Node:
def __init__[self, val=None, children=None]:
self.val = val
self.children = childrenclass MaxDepthFinder:
def maxDepth[self, root: 'Node'] -> int:
if root == None:
return 0
else:
depth = 0
nodes_queue = [root]
next_nodes_queue = []
while[nodes_queue]:
node_out = nodes_queue.pop[0]
for child in node_out.children:
next_nodes_queue.append[child]
if nodes_queue == []:
nodes_queue, next_nodes_queue = next_nodes_queue, nodes_queue
depth += 1
return depth
phân tích độ phức tạp
Thời gian phức tạp
Chúng tôi đang truy cập từng nút một lần và lưu trữ nó trong hàng đợi. Trong trường hợp xấu nhất, nếu tất cả các nút con ở cùng cấp độ x, chúng ta có thể phải giữ tất cả các nút trong hàng đợi, do đó độ phức tạp của không gian là O[N] trong đó N là số nút
Đầu tiên, chúng ta cần biết về Traversal trong Binary Tree là gì. Traversal là một loại phương pháp trong đó chúng tôi truy cập tất cả các nút chính xác một lần theo một số cách thức / thứ tự cụ thể. Về cơ bản, có hai loại truyền tải trong Cây nhị phân
Chúng tôi đã biết về khái niệm về BFS. Bây giờ, chúng ta thấy trình duyệt Preorder, Inorder và Postorder và những đường truyền này là một phần của DFS của cây nhị phân. Vì vậy, chúng tôi thấy tất cả các loại cây một cách chi tiết
Trong quá trình tải xuống này, trước tiên chúng ta có trong dữ liệu của nút hiện tại, sau đó chuyển sang cây bên trái trước và sau đó chuyển sang cây bên phải. Trình duyệt đặt hàng trước của cây nhị phân trên là 0 1 3 4 2 5
Trong quá trình duyệt này, trước tiên chúng ta di chuyển đến cây con bên trái và sau đó di chuyển sang cây con bên phải. Sau khi di chuyển trong dữ liệu của nút. Trình tự tải xuống sau của cây nhị phân phân chia ở trên là 1 3 4 2 5 6
Đầu vào là một lệnh với một đối số cho tên nút và danh sách với con của nó ở cùng một hình thức với cha mẹ. Chức năng hoạt động tốt và tôi đã tạo ra phương pháp chứng minh điều đó nhưng tôi không thể tìm ra cách để vượt qua nó ngay và đạt được chiều cao của cây. Tôi không biết "chiều cao" đó là thuật ngữ đúng vì tôi biết nó có thể là giấc mơ, tôi cần coi nút là một đơn vị đo lường, như thế này
parent
|
|
---------
| |
child child
Chiều cao của cây này là 2, tôi đã thử mọi thứ, từ soi đến thẻ trong lớp, mọi thứ như Đột biến tôi không bao giờ có được chiều cao phù hợp. Làm thế nào tôi nên tiếp cận điều đó?
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
ví dụ.
Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 9
Bàn luận
Chuyển đổi thứ tự lặp đi lặp lại của cây nhị phân.
Cho một cây K-ary. Nhiệm vụ là viết một chương trình đi vòng lặp lại để thực hiện giao dịch trước đó của cây n-ary đã chọn. Hai trường hợp đã được xử lý trong Thuật toán duyệt đơn đặt hàng trước lặp đi lặp lại này.
- Truyền hàng trước của một cây n-ary tương tự như đường truyền trước của cây tìm kiếm nhị phân hoặc cây nhị phân với sự khác biệt duy nhất là, tất cả các nút con của cha mẹ đều đi từ trái sang phải trong một chuỗi. nhị phân cây
- Các trường hợp cần xử lý trong quá trình tải. Hai trường hợp đã được chăm sóc cẩn thận trong thuật toán truyền tải trước lần lặp lại này.
Bật nút trên cùng của Ngăn xếp - trên cùng của Ngăn xếp và thêm nó vào danh sách các nút đã truy cập. Trong cách triển khai python bên dưới, một "dequeue" được sử dụng để triển khai ngăn xếp thay vì danh sách vì hoạt động append và pop hiệu quả của nó
Đẩy tất cả các nút trẻ em của đỉnh vào Ngăn xếp từ phải sang trái vì đường truyền từ Ngăn xếp sẽ được thực hiện theo thứ tự lùi lại. Kết quả là đạt được Traversal setting hàng chính xác
C++
parent
|
|
---------
| |
child child
49LƯU Ý. Trong quá trình triển khai Python dưới đây, một dequeue trực tiếp được sử dụng để thực hiện việc ngăn xếp thay vì một danh sách vì các hoạt động tăng thêm hiệu quả của nó
Dưới đây là việc thực hiện phương pháp trên.
________ 350 ________ 351 ________ 352
parent
|
|
---------
| |
child child
53Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
00Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
07Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
01Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
02 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
3_______103 parent
|
|
---------
| |
child child
5Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
7 parent
|
|
---------
| |
child child
8Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
04Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
05 parent
|
|
---------
| |
child child
5Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 93
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 95
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
04Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 97
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 99
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
09Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
04 parent
|
|
---------
| |
child child
1 parent
|
|
---------
| |
child child
2Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 934
parent
|
|
---------
| |
child child
2Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 936
parent
|
|
---------
| |
child child
2Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 938_____0___3
parent
|
|
---------
| |
child child
494 parent
|
|
---------
| |
child child
495Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 931
Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 932
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
7 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
490 parent
|
|
---------
| |
child child
491Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
04 parent
|
|
---------
| |
child child
493 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
506 parent
|
|
---------
| |
child child
507 parent
|
|
---------
| |
child child
508Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
7Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
512 parent
|
|
---------
| |
child child
7 parent
|
|
---------
| |
child child
22 parent
|
|
---------
| |
child child
5Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
490 parent
|
|
---------
| |
child child
491 parent
|
|
---------
| |
child child
503 parent
|
|
---------
| |
child child
504Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
04 parent
|
|
---------
| |
child child
515Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
518 parent
|
|
---------
| |
child child
519 parent
|
|
---------
| |
child child
520Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
522 parent
|
|
---------
| |
child child
519 parent
|
|
---------
| |
child child
524Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
522 parent
|
|
---------
| |
child child
519 parent
|
|
---------
| |
child child
528Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
538Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
522 parent
|
|
---------
| |
child child
519 parent
|
|
---------
| |
child child
532Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
534 parent
|
|
---------
| |
child child
519 parent
|
|
---------
| |
child child
536Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
007 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
001Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
007Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
534 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
005Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
007 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
010 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
015 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
020Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
0222 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
024Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
034 parent
|
|
---------
| |
child child
7Python3
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
0222 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
028Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
0222 parent
|
|
---------
| |
child child
519Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
032Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
036Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
037Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
038Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
039 parent
|
|
---------
| |
child child
53Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
041 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
045Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
054Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
056Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
043Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
044Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
045Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
046 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
045Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
049Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
051Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
064Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
056Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
068Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
070Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
043Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
058Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
060Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
062Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 931
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
073Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
074Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
02 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
078Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
099Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
02 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
082Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
073Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
084Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
073__ parent
|
|
---------
| |
child child
494________ 1095 ________ 1050 ________ 1097 parent
|
|
---------
| |
child child
494 parent
|
|
---------
| |
child child
02Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050 parent
|
|
---------
| |
child child
04Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
073Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
086Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
087Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
088 parent
|
|
---------
| |
child child
09 parent
|
|
---------
| |
child child
2 parent
|
|
---------
| |
child child
490 parent
|
|
---------
| |
child child
1212____213 parent
|
|
---------
| |
child child
14 parent
|
|
---------
| |
child child
491Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
17Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
073 parent
|
|
---------
| |
child child
19 parent
|
|
---------
| |
child child
26 parent
|
|
---------
| |
child child
31 parent
|
|
---------
| |
child child
26 parent
|
|
---------
| |
child child
33___3_____353___38 parent
|
|
---------
| |
child child
494Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
082 parent
|
|
---------
| |
child child
2222223 parent
|
|
---------
| |
child child
13 parent
|
|
---------
| |
child child
25 parent
|
|
---------
| |
child child
26______1078Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
088Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
03 parent
|
|
---------
| |
child child
47 parent
|
|
---------
| |
child child
48 parent
|
|
---------
| |
child child
2Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
082Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
078Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
050Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
02 parent
|
|
---------
| |
child child
494Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
097 parent
|
|
---------
| |
child child
60 parent
|
|
---------
| |
child child
61 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
60 parent
|
|
---------
| |
child child
64 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
60 parent
|
|
---------
| |
child child
67 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
71 parent
|
|
---------
| |
child child
72 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
76Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
71 parent
|
|
---------
| |
child child
79 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
71 parent
|
|
---------
| |
child child
84 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
76Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
088 parent
|
|
---------
| |
child child
71 parent
|
|
---------
| |
child child
91 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
76Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
088 parent
|
|
---------
| |
child child
71 parent
|
|
---------
| |
child child
98 parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
075 parent
|
|
---------
| |
child child
76Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: 5
088 parent
|
|
---------
| |
child child
71Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 905
parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69 parent
|
|
---------
| |
child child
61 parent
|
|
---------
| |
child child
71Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 910
parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69 parent
|
|
---------
| |
child child
61 parent
|
|
---------
| |
child child
71Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 915
parent
|
|
---------
| |
child child
62 parent
|
|
---------
| |
child child
69 parent
|
|
---------
| |
child child
61 parent
|
|
---------
| |
child child
71Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 920
parent
|
|
---------
| |
child child
62Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 922
đầu ra
Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 / / | \ 10 11 12 13 Output: 1 2 5 10 6 11 12 13 3 4 7 8 9 Input: 3-Array Tree 1 / | \ / | \ 2 3 4 / \ / | \ 5 6 7 8 9 Output: 1 2 5 6 3 4 7 8 93
Phân vùng độ phức tạp
- Độ phức tạp về thời gian. O [n], trong đó n là tổng số nút trong cây đã chọn. Trong đó n là tổng số nút trong cây đã cho
- Không hỗ trợ khoảng thời gian. O[h], trong đó h là chiều cao của cây đã cho O[h], Trong đó h là chiều cao của cây đã cho
Làm thế nào để bạn đi qua một cái cây trong Python?
Traversal đặt hàng trước Trong phương thức tải xuống này, nút gốc được truy cập trước, sau đó là cây con bên trái và cuối cùng là cây con bên phải. Trong chương trình Python bên dưới, chúng tôi sử dụng nút lớp để tạo chủ sở hữu vị trí cho nút gốc cũng như nút trái và nút bên phải. Sau đó, chúng tôi tạo một chức năng chèn để thêm dữ liệu vào cây. nút gốc được truy cập trước, sau đó đến cây con bên trái và cuối cùng là cây con bên phải . Trong chương trình python dưới đây, chúng tôi sử dụng lớp Node để tạo các trình giữ chỗ cho nút gốc cũng như các nút trái và phải. Sau đó, chúng tôi tạo một chức năng chèn để thêm dữ liệu vào cây.
Làm thế nào để bạn tạo ra một cây n ary trong Python?
Khoa học dữ liệu thực tế sử dụng Python. .
Nếu gốc không trống, thì. trả lại gốc
đầu. = một nút mới với giá trị gốc
Q. = Một deque mới bao gồm các phần tử gốc và đầu
Trong khi Q không trống, hãy làm. Hạt. = Pop first element from q. nhân bản. = pop the first element from q.
quay lại đầu
3 cách để đi qua một cây nhị phân là gì?
Nói chung, chúng tôi đi qua một cây để tìm kiếm hoặc xác định vị trí của một mục hoặc khóa xác định rõ nhất trong cây hoặc để tìm tất cả các giá trị mà nó chứa. .
Theo đơn đặt hàng. Trong phương pháp truyền tải này, cây con bên trái được truy cập trước, sau đó là gốc và sau đó là cây con bên phải