将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)
生活随笔
收集整理的這篇文章主要介紹了
将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://blog.csdn.net/wangyangkobe/article/details/6756700
編寫一個遞歸算法,利用葉子結點中空的 右連接指針域rchild,將所有葉子結點自左向右鏈接成一個單鏈表,算法返回最左葉子結點的地址(鏈頭)。
//有一個關鍵點我沒有想到,就是node始終記錄的是單鏈表的最后一個元素 void link(Node * root, Node * &node) {if (root-left == NULL && root->right == NULL) {node->right = root;node = node ->right;return;}if (root->left != NULL)link(root->left,node);if (root->right != NULL)link(root->right,node);}Node * tree2leaf(Node *root) {if (root == NULL)return NULL;Node head;link(root, head);return head->right; }
總結
以上是生活随笔為你收集整理的将二叉树的叶子结点转换成单链表,并返回最左叶子结点的地址(链头)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类型大小
- 下一篇: 实现一个函数,对一个正整数n,算得到1