二叉树打印偶数

2019-08-19  本文已影响0人  zlrs
#include <stdio.h>

struct Node {
    int val;
    struct Node * left, right;
};

void travel(struct Node *head, bool top=true) {
    static bool flag_has_even;
    if (top) flag_has_even = false;

    if (head) {
        if (head->val & 1 == 0) {
            flag_has_even = true;
            printf("%d ", head->val);  // 打印偶数
        }

        travel(head->left, false);
        travel(head->right, false);
    }


    if (top && !flag_has_even){
        printf("没有偶数");
    }
}

/*
TEST:
可能输入
1. NULL
2. 单节点:奇数 偶数
3. 双节点:奇NULL偶 奇偶NULL 偶NULL奇 偶奇NULL
4. 三节点
*/


上一篇 下一篇

猜你喜欢

热点阅读