LeetCode 樹 226 翻轉二叉樹

2021-10-23 18:46:38 字數 716 閱讀 2627

題目

翻轉一棵二叉樹。

示例:輸入:

輸出:

思路:這道題主要是為了翻轉所有的左右子節點,那麼我們只要遍歷出所有的節點,翻轉左右子樹即可。(這裡的遍歷方法有前序遍歷,中序遍歷,後序遍歷(這三種為遞迴實現),層序遍歷(這種為迭代實現))

解法一:前序遍歷(後序遍歷的解法上與之類似,不過中序遍歷有所注意)

class

solution

}

解法二:中序遍歷

中序遍歷使用時,我們先遍歷出了左子樹,那麼左右子樹交換時,我們要注意最後的遞迴表示式還是遞迴左子樹, 因為現在的左子樹即為右子樹

class

solution

}

解法三:層序遍歷(迭代實現)

層序遍歷一般使用佇列儲存,因為每個節點都遵循先進先出原則(即彈出根節點時,順便把左右節點入隊)

class

solution

if(node.right != null)

}return root;

}}

226 翻轉二叉樹 leetcode

226.翻轉二叉樹 leetcode 226.翻轉二叉樹 definition for a binary tree node.class treenode class solution tmp root left root left root right root right tmp this in...

leetcode 226 翻轉二叉樹

翻轉一棵二叉樹。示例 輸入 4 2 7 1 3 6 9輸出 4 7 2 9 6 3 1備註 這個問題是受到 max howell 的 原問題 啟發的 谷歌 我們90 的工程師使用您編寫的軟體 homebrew 但是您卻無法在面試時在白板上寫出翻轉二叉樹這道題,這太糟糕了。definition for...

LeetCode 226 翻轉二叉樹

這道題目是一道很經典的關於二叉樹的演算法題,題目如下 題目的描述非常簡單,就是翻轉一棵給定的二叉樹,然而有趣的是這個備註,這個故事是 mac 系統的包管理工具 homebrew 的開發者 max howell 去谷歌面試的時候沒有做出這道面試題而遭淘汰了,所以這道題目也是引發血案的一道二叉樹題目。其...