打印叶节点到根的路径
发布日期:2022-02-27 02:37:59 浏览次数:48 分类:技术文章

本文共 1754 字,大约阅读时间需要 5 分钟。

#include
#include
typedef struct node{
int data; struct node *lchild; struct node *rchild;} *binaryTree;binaryTree init();void printLeavesToRoot(binaryTree root, int* arr, int pos);int main(){
/* input: 1 2 3 4 5 6 7 */ binaryTree root = init(); int arr[100] = {
0}, pos = 0; printLeavesToRoot(root, arr, pos);}binaryTree init(){
binaryTree node1 = (binaryTree)malloc(sizeof(struct node)); node1->data = 1; binaryTree node2 = (binaryTree)malloc(sizeof(struct node)); node2->data = 2; binaryTree node3 = (binaryTree)malloc(sizeof(struct node)); node3->data = 3; binaryTree node4 = (binaryTree)malloc(sizeof(struct node)); node4->data = 4; binaryTree node5 = (binaryTree)malloc(sizeof(struct node)); node5->data = 5; binaryTree node6 = (binaryTree)malloc(sizeof(struct node)); node6->data = 6; binaryTree node7 = (binaryTree)malloc(sizeof(struct node)); node7->data = 7; node1->lchild = node2; node1->rchild = node3; node2->lchild = node4; node2->rchild = node5; node3->lchild = node6; node3->rchild = node7; node4->lchild = NULL; node4->rchild = NULL; node5->lchild = NULL; node5->rchild = NULL; node6->lchild = NULL; node6->rchild = NULL; node7->lchild = NULL; node7->rchild = NULL; return node1;}void printLeavesToRoot(binaryTree root, int *arr, int pos){
if(root == NULL) return; arr[pos++] = root->data; if(root->lchild == NULL && root->rchild == NULL) {
pos --; for(int i = pos; i >=0; i--) printf("%d ", arr[i]); printf("\n"); return; } printLeavesToRoot(root->lchild, arr, pos); printLeavesToRoot(root->rchild, arr, pos);}

转载地址:https://blog.csdn.net/weixin_43399464/article/details/120496013 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:移动链表最大元素
下一篇:《统计学习方法》提升方法

发表评论

最新留言

不错!
[***.144.177.141]2024年04月15日 14时42分35秒