{"id":949,"date":"2025-12-13T18:25:35","date_gmt":"2025-12-13T10:25:35","guid":{"rendered":"https:\/\/www.guanhaobo.cn\/?p=949"},"modified":"2025-12-13T18:25:35","modified_gmt":"2025-12-13T10:25:35","slug":"leetcode-114-%e4%ba%8c%e5%8f%89%e6%a0%91%e5%b1%95%e5%bc%80%e4%b8%ba%e9%93%be%e8%a1%a8","status":"publish","type":"post","link":"https:\/\/www.guanhaobo.cn\/?p=949","title":{"rendered":"LeetCode 114 &#8211; \u4e8c\u53c9\u6811\u5c55\u5f00\u4e3a\u94fe\u8868"},"content":{"rendered":"<h1>\u9898\u76ee\u63cf\u8ff0<\/h1>\n<p>\u7ed9\u4f60\u4e8c\u53c9\u6811\u7684\u6839\u7ed3\u70b9 root \uff0c\u8bf7\u4f60\u5c06\u5b83\u5c55\u5f00\u4e3a\u4e00\u4e2a\u5355\u94fe\u8868\uff1a<\/p>\n<p>\u5c55\u5f00\u540e\u7684\u5355\u94fe\u8868\u5e94\u8be5\u540c\u6837\u4f7f\u7528 TreeNode \uff0c\u5176\u4e2d right \u5b50\u6307\u9488\u6307\u5411\u94fe\u8868\u4e2d\u4e0b\u4e00\u4e2a\u7ed3\u70b9\uff0c\u800c\u5de6\u5b50\u6307\u9488\u59cb\u7ec8\u4e3a null \u3002<br \/>\n\u5c55\u5f00\u540e\u7684\u5355\u94fe\u8868\u5e94\u8be5\u4e0e\u4e8c\u53c9\u6811 \u5148\u5e8f\u904d\u5386 \u987a\u5e8f\u76f8\u540c\u3002<\/p>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.guanhaobo.cn\/wp-content\/uploads\/2025\/12\/wp_editor_md_324196d3812c0d7ae75fee4227a89320.jpg\"><img decoding=\"async\" src=\"https:\/\/www.guanhaobo.cn\/wp-content\/uploads\/2025\/12\/wp_editor_md_324196d3812c0d7ae75fee4227a89320.jpg\" alt=\"\" \/><\/a><\/p>\n<h1>\u9898\u76ee\u5206\u6790<\/h1>\n<h2>\u5148\u5e8f\u904d\u5386<\/h2>\n<p>\u5148\u5e8f\u904d\u5386\uff0c\u53ef\u4ee5\u9012\u5f52\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u6808\u6a21\u62df\u3002\u628a\u904d\u5386\u7ed3\u679c\u5b58\u5728 list \u4e2d\uff0c\u6700\u540e\u518d\u7edf\u4e00\u4fee\u6539\u7ed3\u70b9\u4e4b\u95f4\u7684\u7236\u5b50\u5173\u7cfb\u3002<br \/>\n\u65f6\u95f4\u590d\u6742\u5ea6 O(n)\uff0c\u7a7a\u95f4\u590d\u6742\u5ea6 O(n)<\/p>\n<h2>\u524d\u9a71\u7ed3\u70b9<\/h2>\n<p>\u5148\u5e8f\u904d\u5386\u662f \u6839 -> \u5de6 -> \u53f3 \u7684\u987a\u5e8f\uff0c\u5bf9\u4e8e\u53f3\u5b50\u7ed3\u70b9\u6765\u8bf4\uff0c\u524d\u9a71\u662f\u6839\u7684\u5de6\u5b50\u6811\u4e2d\u6700\u540e\u4e00\u4e2a\u7ed3\u70b9\u3002<br \/>\n1. \u627e\u5230\u6839\u7684\u5de6\u5b50\u6811\u7684\u6700\u540e\u4e00\u4e2a\u7ed3\u70b9 last\uff0c\u628a\u6839\u7684\u53f3\u5b50\u6811\u8fde\u63a5\u5230 last \u4e0a<br \/>\n2. \u628a\u6839\u7684\u5de6\u5b50\u6811\u79fb\u52a8\u5230\u53f3\u8fb9\uff0c\u53d8\u6210\u53f3\u5b50\u6811<br \/>\n3. \u5411\u53f3\u65b9\u5904\u7406\u4e0b\u4e00\u4e2a\u7ed3\u70b9\uff0c\u4e0d\u65ad\u5faa\u73af<\/p>\n<p>\u65f6\u95f4\u590d\u6742\u5ea6 O(n)\uff0c\u7a7a\u95f4\u590d\u6742\u5ea6 O(1)<\/p>\n<h1>Java<\/h1>\n<pre><code class=\"language-java line-numbers\">public void flatten(TreeNode root) {\n    List&lt;TreeNode&gt; list = new ArrayList&lt;&gt;();\n    dfs(root, list);\n    for (int i = 1; i &lt; list.size(); i++) {\n        TreeNode pre = list.get(i - 1);\n        pre.left = null;\n        pre.right = list.get(i);\n    }\n}\n\nprivate void dfs(TreeNode root, List&lt;TreeNode&gt; list) {\n    if (root == null) {\n        return;\n    }\n    list.add(root);\n    dfs(root.left, list);\n    dfs(root.right, list);\n}\n\npublic void flatten2(TreeNode root) {\n    List&lt;TreeNode&gt; list = new ArrayList&lt;&gt;();\n    Deque&lt;TreeNode&gt; stack = new LinkedList&lt;&gt;();\n    TreeNode cur = root;\n    while (cur != null || !stack.isEmpty()) {\n        while (cur != null) {\n            stack.push(cur);\n            list.add(cur);\n            cur = cur.left;\n        }\n\n        cur = stack.pop();\n        cur = cur.right;\n    }\n    for (int i = 1; i &lt; list.size(); i++) {\n        TreeNode pre = list.get(i - 1);\n        pre.left = null;\n        pre.right = list.get(i);\n    }\n}\n\npublic void flatten3(TreeNode root) {\n    TreeNode node = root;\n    while (node != null) {\n        if (node.left != null) {\n            TreeNode leftLast = node.left;\n            while (leftLast.right != null) {\n                leftLast = leftLast.right;\n            }\n            leftLast.right = node.right;\n            node.right = node.left;\n            node.left = null;\n        }\n        node = node.right;\n    }\n}\n<\/code><\/pre>\n<h1>Kotlin<\/h1>\n<pre><code class=\"language-kotlin line-numbers\">fun flatten(root: TreeNode?): Unit {\n    var node = root\n    while (node != null) {\n        if (node.left != null) {\n            var leftLast = node.left\n            while (leftLast?.right != null) {\n                leftLast = leftLast.right\n            }\n            leftLast?.right = node.right\n            node.right = node.left\n            node.left = null\n        }\n        node = node.right\n    }\n}\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u9898\u76ee\u63cf\u8ff0 \u7ed9\u4f60\u4e8c\u53c9\u6811\u7684\u6839\u7ed3\u70b9 root \uff0c\u8bf7\u4f60\u5c06\u5b83\u5c55\u5f00\u4e3a\u4e00\u4e2a\u5355\u94fe\u8868\uff1a \u5c55\u5f00\u540e\u7684\u5355\u94fe\u8868\u5e94\u8be5\u540c\u6837\u4f7f\u7528 TreeNo [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[20,33,64],"class_list":["post-949","post","type-post","status-publish","format-standard","hentry","category-algo","tag-leetcode","tag-33","tag-64"],"_links":{"self":[{"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/posts\/949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=949"}],"version-history":[{"count":1,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/posts\/949\/revisions"}],"predecessor-version":[{"id":950,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=\/wp\/v2\/posts\/949\/revisions\/950"}],"wp:attachment":[{"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.guanhaobo.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}