Cho cây nhị phân, chương trình in các nút ở cấp độ lẻ (cấp độ bắt đầu từ 1).
Có thể dùng đệ quy hoặc lặp. Ở đây dùng đệ quy: gọi hàm đệ quy lấy nút ở cấp độ lẻ và trả về.

Trong cây nhị phân trên:
Cấp 1: 10 Cấp 2: 3 và 211 Cấp 3: 140, 162, 100, 146
Nút ở cấp 1 và 3 sẽ được in: 10, 140, 162, 100, 146.
Thuật toán
BẮT ĐẦU
BƯỚC 1: CẤU TRÚC NÚT: struct Node { Node *left, *right; int data; }
BƯỚC 2: HÀM TẠO NÚT newnode(int data)
BƯỚC 3: HÀM TÌM NÚT LẺ odd(Node *root, bool ifodd = true)
NẾU root == NULL TRẢ VỀ
NẾU ifodd IN root->data
odd(root->left, !ifodd)
odd(root->right, !ifodd)
BƯỚC 4: TRONG main(): TẠO CÂY, GỌI odd(root)
KẾT THÚC Ví dụ mã C++
#include <bits/stdc++.h>
using namespace std;
struct Node {
int data;
Node* left, *right;
};
void odd(Node *root, bool ifodd = true) {
if (root == NULL) return;
if (ifodd) cout << root->data << " ";
odd(root->left, !ifodd);
odd(root->right, !ifodd);
}
Node* newnode(int data) {
Node* node = new Node;
node->data = data;
node->left = node->right = NULL;
return node;
}
int main() {
Node* root = newnode(45);
root->left = newnode(23);
root->right = newnode(13);
root->left->left = newnode(24);
root->left->right = newnode(85);
cout << "\nCác nút ở cấp lẻ: ";
odd(root);
return 0;
} Kết quả
Chạy chương trình cho kết quả:
Các nút ở cấp lẻ: 45 24 85