标签:tree code 二叉树 链表 roo 最小 tco turn return
void flatten(TreeNode root) { // base case,即最小 if (root == null) return; flatten(root.left); flatten(root.right); /**** 后序遍历 ****/ // 1、保存原来的左右节点,避免变换位置后不能索引到 TreeNode left = root.left; TreeNode right = root.right; // 2、将左子树转为右子树,原左子树的位置置为空 root.left = null; root.right = left; // 3、将原先的右子树right 接到 改变后的右子树的右边的末端,因为改变后的右子树的右边不一定为空 TreeNode p = root; while (p.right != null) { p = p.right; } p.right = right; }
参考:https://labuladong.gitee.io/algo/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E7%B3%BB%E5%88%97/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%B3%BB%E5%88%971.html
标签:tree code 二叉树 链表 roo 最小 tco turn return
原文地址:https://www.cnblogs.com/Ping697/p/14531862.html