关闭

Middle-题目53:114. Flatten Binary Tree to Linked List

64人阅读 评论(0) 收藏 举报
分类:

题目原文:
Given a binary tree, flatten it to a linked list in-place.

For example,
Given

     1
    / \
   2   5
  / \   \
 3   4   6

The flattened tree should look like:

  1
    \
     2
      \
       3
        \
         4
          \
           5
            \
             6

题目大意:
把一个二叉树平铺到右子树上。
题目分析:
先递归平铺左右子树,再把左子树接到根节点右孩子上即可。
源码:(language:java)

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    public void flatten(TreeNode root) {
        if(root==null){
            return;
        }
        flatten(root.left);
        flatten(root.right);

        TreeNode ptr = root.left;
        if(ptr!=null){
            while(ptr.right!=null){
                ptr = ptr.right;
            }
            ptr.right = root.right;
            root.right = root.left;
            root.left = null;
        }
    }
}

成绩:
1ms,beats 34.42%,众数1ms,65.58%

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:63251次
    • 积分:3275
    • 等级:
    • 排名:第10713名
    • 原创:270篇
    • 转载:53篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论