扬州做网站的公司,wordpress邮箱收不到邮件,网站地图模版,长沙人才招聘网最新招聘2022给你二叉树的根结点 root #xff0c;请你将它展开为一个单链表#xff1a;
展开后的单链表应该同样使用 TreeNode #xff0c;其中 right 子指针指向链表中下一个结点#xff0c;而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。
思路一#x…给你二叉树的根结点 root 请你将它展开为一个单链表
展开后的单链表应该同样使用 TreeNode 其中 right 子指针指向链表中下一个结点而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。
思路一递归
struct TreeNode* g_Last NULL;void realFlatten(struct TreeNode* root)
{if (root NULL) {return ;}realFlatten(root-right);realFlatten(root-left);root-right g_Last;root-left NULL;g_Last root;}void flatten(struct TreeNode* root){if (root NULL) {return ;}g_Last NULL;realFlatten(root);
}
分析
本题要将二叉树转换为链表即可利用递归将二叉树遍历后用链表记录最后返回根节点即可
总结
本题考察二叉树的应用利用递归转换根节点遍历完二叉树转换完即可