方法一:遞迴,需了解樹的遞迴序遍歷
1#definition for a binary tree node.2#
class treenode:3#
def __init__(self, val=0, left=none, right=none):4#
self.val = val5#
self.left = left6#
self.right = right
7class
solution:
8def inordertr**ersal(self, root: optional[treenode]) ->list[int]:
9def
inorder(root: treenode):
10if
notroot:
11return
12inorder(root.left)
1314
inorder(root.right)
15 res =list()
16inorder(root)
17return res
方法二:採用棧輔助
1#definition for a binary tree node.2#
class treenode:3#
def __init__(self, val=0, left=none, right=none):4#
self.val = val5#
self.left = left6#
self.right = right
7from collections import
deque
8class
solution:
9def inordertr**ersal(self, root: optional[treenode]) ->list[int]:10#
每棵子樹的整棵樹左邊界進棧,依次彈出的過程列印記錄,對彈出節點的右樹重複以上操作
11 res =list()
12if
root:
13 stack =deque()
14while stack or
root:
15if
root:16#
左邊界進棧
1718 root =root.left
19else
:20 root =stack.pop()
2122 root =root.right
23return res
LeetCode 94 中序遍歷二叉樹
傳送門 給定乙個二叉樹,返回其中序遍歷。例如 給定二叉樹 1,null,2,3 1 2 3返回 1,3,2 說明 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?題中說明了要求使用迭代法 使用乙個棧來儲存二叉樹節點,根據中序遍歷的規則,我們可以推算出這樣的規律 1.將當前非空節點入棧 2.如果左子節點...
LeetCode94 二叉樹中序遍歷
題目描述 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 c 實現 遞迴實現 definition for a binary tree node.struct treenode class solution void helper treenode ...
LeetCode 94 二叉樹的中序遍歷
給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 高階 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?遞迴解法,先從根節點的左孩子中序遍歷,再訪問根節點,最後從根節點的右孩子中序遍歷。遞迴基是當節點為空時,返回。definition for a bin...