Leetcode---Flatten Binary Tree to Linked List

本文介绍了如何通过递归方法将二叉树转换为链表,详细步骤包括先序遍历和节点链接操作,旨在保持原始树结构的同时实现链表形态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Given a binary tree, flatten it to a linked list in-place.

这题直观的做法就是先序遍历,一个节点一个节点的塞到list里面,但是为了避免毁掉原本的链接,所以在递归中使用临时变量存储节点


  1. TreeNode * p=NULL;
  2. void f(TreeNode * root){
  3.     if(root==NULL)
  4.         return;
  5.     p->right=root;
  6.     p=p->right;
  7.     TreeNode * l=root->left;
  8.     TreeNode * r=root->right;
  9.     root->left=NULL;
  10.     f(l);
  11.     f(r);
  12. }
  13. void flatten(TreeNode *root) {
  14.     p=new TreeNode(0);
  15.     f(root);
  16. }


<script>window._bd_share_config={"common":{"bdsnskey":{},"bdtext":"","bdmini":"2","bdminilist":false,"bdpic":"","bdstyle":"0","bdsize":"16"},"share":{}};with(document)0[(getelementsbytagname('head')[0]||body).appendchild(createelement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new date()/36e5)];</script>
阅读(11) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值