輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。
通過root結點可以把中序遍歷分成兩部分。可以知道左子樹的個數和右子樹的個數。從而求出前序遍歷和中序遍歷相對應的左子樹和右子樹。
並通過遞迴求出。
遞迴方式類似快排。
/**
* definition for binary tree
* public class treenode
* }*/public
class
solution
public treenode binarytree(int pre,int startpre,int endpre,int in, int startin,int endin)
treenode root=new treenode(pre[startpre]);
for(int i=startin;i1;i++)
}return root;
}}
4 劍指offer第四題(python)
問題 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。coding utf 8 class treenode def init self,x self.val x self.lef...
劍指Offer第三第四道題
第三題 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。思路 始終從列表的第一項插入資料。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回從尾部到頭部的列表值序列,例如 1,2,...
劍指offer leetcode 第四題
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 輸入 head 1,3,2 輸出 2,3,1 definition for singly linked list.public class listnode class solution stack.push temp.val tem...