[leetcode]94.二叉树的中序遍历
生活随笔
收集整理的這篇文章主要介紹了
[leetcode]94.二叉树的中序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個二叉樹的根節點?root?,返回它的?中序?遍歷。
示例 1:
?
輸入:root = [1,null,2,3] 輸出:[1,3,2]示例 2:
輸入:root = [] 輸出:[]示例 3:
輸入:root = [1] 輸出:[1]示例 4:
?
輸入:root = [1,2] 輸出:[2,1]示例 5:
?
輸入:root = [1,null,2] 輸出:[1,2]提示:
- 樹中節點數目在范圍?[0, 100]?內
- -100 <= Node.val <= 100
1.遞歸解法
class Solution:def inorderTraversal(self, root: TreeNode) -> List[int]:self.res = []self.dfs(root)return self.resdef dfs(self,node:TreeNode):if node is None:returnself.dfs(node.left)self.res.append(node.val)self.dfs(node.right)2.非遞歸解法-棧
class Solution:def inorderTraversal(self, root: TreeNode) -> List[int]:"""左中右"""res = []if root ==None:return resstack = []#之所以要賦值,是因為要轉移遍歷的順序curr = rootwhile (curr !=None or len(stack)>0):if curr != None:stack.append(curr)curr = curr.leftelse:curr = stack.pop()res.append(curr.val)curr = curr.rightreturn res 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的[leetcode]94.二叉树的中序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [leetcode]145.二叉树的后序
- 下一篇: [leetcode]102.二叉树的层序